我如何创buildC头文件
我希望能够在头文件中创build一个函数集,我可以在我的C程序之一中包含这些函数。
- 打开你最喜欢的文本编辑器
- 创build一个名为whatever.h的新文件
- 把你的函数原型放在里面
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 ++中的讨论:头文件中的静态函数是什么意思? 为更多的解释。