包括来自另一个内部.c文件的函数?

时间:2017-11-13 16:30:24

标签: c

我使用结构和函数制作了一些程序,现在我必须将我的工作分成3个文件,如下所示:

header.h - declaring data types, functions, #define
func.c - function definition,
main.c - structure array initialization and calling functions

这样做是否有意义?我这样做了,在两个.c文件中添加了#include“header.h”但它没有编译,似乎func.c有问题。我正在使用VS 2017。

1 个答案:

答案 0 :(得分:0)

让我们考虑下面的例子,

header.h :通常用户定义的头文件包含MACRO,Structure,预定义头文件等常用信息,这些文件将被多文件编译中的大多数文件使用。

#include<stdio.h>
#include<malloc.h>
int n;
#define MAX 5
void call();

typedef enum legends {
        L_GANDHI,
        L_MARTIN_LUTHER_KING
}legends_e;

main.c

#include"header.h"
int main()
{
        printf("in main() : %d \n",L_GANDHI);
        call();// defined in other file
        return 0;
}

fun.c

#include"header.h"
void call()
{
        printf("In call() function : %d \n",L_MARTIN_LUTHER_KING);
}

用于编译所有文件,

xyz@xyz-PC:~/s_flow/john$ gcc main.c func.c

请记住,在多文件编译中,您应该只有一个main()函数。我希望以上信息可以帮助您解决问题。