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

是否包含来自另一个内部.c文件的函数?,c,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有问题。我使用

我使用结构和函数编制了一些程序,现在我必须将我的工作分为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。

让我们考虑下面的例子,

header.h:通常,用户定义的头文件由宏、结构、预定义头文件等公共信息组成,这些信息将被多文件编译中的大多数文件使用

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

typedef enum legends {
        L_GANDHI,
        L_MARTIN_LUTHER_KING
}legends_e;
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()函数。我希望以上信息能帮助您解决问题。

在寻求帮助时隐藏代码和错误消息似乎不是最好的主意。一般人都没有灵力。请提供a)文件和b)您在尝试编译时可能遇到的错误。是的,这可能有意义,是的,您的代码有问题。您是否遇到编译错误或链接器错误?如果缺少符号链接错误,是否尝试链接两个对象文件?你概述的计划应该有效,但你必须正确使用它。
xyz@xyz-PC:~/s_flow/john$ gcc main.c func.c