我使用结构和函数制作了一些程序,现在我必须将我的工作分成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。
答案 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()函数。我希望以上信息可以帮助您解决问题。