我第一次尝试为一个简单的程序编写一个实际的专业C代码。
1)我创建了一个头文件名Essential_data.h,并在其中声明了我的所有函数和全局变量。我已将所有变量声明为extern ..并且所有函数声明都是正常的
例如:
void test ();
extern int x;
2)然后我创建了另一个名为main_data.h的头文件,并在那里定义了我的所有全局变量。
例如:int x
;
3)然后,我创建了包含相应函数定义的相应源文件,并在源文件中包含main_data.h,需要该全局变量。
这就是全部。在编译项目之后,我收到了许多关于所有功能的警告函数测试的隐式声明[-Wimplicit-function-declaration]
所以在那之后我做了以下
1)我在Essential_data.h中的函数声明前放了一个extern。 例如:
extern void test();
2)在main_data.h中我正常声明了函数并编写了
void test ();
我的Essential_data.h只在主函数中出现,而在其他地方没有。
然后重新编译,之后所有警告都消失了。
那么正确的方法还是有其他方法可以更有效地组织它们?
答案 0 :(得分:0)
你应该:
包含extern声明(函数和对象)的一个或多个.h
文件。这些文件需要包含在需要这些符号的.c
文件中。您不应该有多个声明(每个标识符应该只声明一次)
您在其中定义功能和对象的一个或多个.c
文件
在你的例子中:
/* essential_data.h */
void test ();
extern int x;
/* something.c */
#include "essential_data.h"
int x;
void test()
{
/* ... */
}
/* main.c */
#include "essential_data.h"
/* ... */