当我创建“ file.c”和“ file.h”时,我不知道是否必须在“ file.h”中编写“ file.c”函数的原型,然后编写这些函数在“ file.c”中没有主目录。我这样做是正确的吗?我只想确保我了解如何创建头文件,并且需要澄清。
答案 0 :(得分:2)
编译器和其他软件通常不会在名称为“ .c”的文件和名称为“ .h”的文件之间强加区别。人类使用的惯例是:
定义提供对象和功能的实际内容。编译器使用定义为这些对象和功能生成数据和代码。
声明将对象和函数的其他信息告知其他源文件,例如指定其类型,以便其他源文件能够使用对象和函数。
通常,file.c应包括{。{1}}的file.h。即使这似乎是多余的,因为file.c已经知道其定义的对象和功能,但它提供了错误检查:如果file.c包含file.h,并且file.h中的声明与定义不一致在file.c中,编译器将提供警告或错误消息。如果file.c不包含file.h,则编译器将无法执行此检查。
答案 1 :(得分:0)
要在.h
/源文件之间共享declarations (not definitions),放在.c
/头文件中。
只有.c
个文件通过传递给编译器而直接 进行编译。通过.h
将它们#include
放入一个或多个.c
文件中,.c
文件也可以被编译,但可以间接。
放置尽可能多的代码,包括在.c
文件中的声明。仅当需要由另一个.h
文件知道/使用的东西(属于.c
文件)才能放置/移动到onkeyup
文件中。