我如何创buildC头文件

我希望能够在头文件中创build一个函数集,我可以在我的C程序之一中包含这些函数。

  1. 打开你最喜欢的文本编辑器
  2. 创build一个名为whatever.h的新文件
  3. 把你的函数原型放在里面

DONE。

例如whatever.h

#ifndef WHATEVER_H_INCLUDED #define WHATEVER_H_INCLUDED int f(int a); #endif 

注意:包括卫兵(预处理器命令)加上谢谢卢克。 他们避免在同一个编译中包含相同的头文件两次。 另一种可能性(在评论中也提到)是添加#pragma once但并不保证在每个编译器上都支持。

例如whatever.c

 #include "whatever.h" int f(int a) { return a + 1; } 

然后你可以在任何其他的.c文件中包含“whatever.h”,并将其与whatever.c的目标文件链接起来。

喜欢这个:

sample.c文件

 #include "whatever.h" int main(int argc, char **argv) { printf("%d\n", f(2)); /* prints 3 */ return 0; } 

编译它(如果你使用GCC):

 $ gcc -c whatever.c -o whatever.o $ gcc -c sample.c -o sample.o 

要链接文件以创build可执行文件:

 $ gcc sample.o whatever.o -o sample 

你可以testing样本:

 $ ./sample 3 $ 

头文件可以包含任何有效的C代码,因为它们在编译之前被预处理器注入到编译单元中。

如果头文件包含一个函数,并且被多个.c文件包含,则每个.c文件都将获得该函数的一个副本并为其创build一个符号。 链接器会抱怨重复的符号。

在技​​术上可以在头文件中创buildstatic函数以包含在多个.c文件中。 虽然这通常不会完成,因为它违反了在.c文件中find代码的约定,并且在.h文件中发现了声明。

请参阅C / C ++中的讨论:头文件中的静态函数是什么意思? 为更多的解释。