我希望能够在我的一个 C 程序中#include 的头文件中创建一组函数。
问问题
155920 次
2 回答
139
- 打开您喜欢的文本编辑器
- 创建一个名为whatever.h的新文件
- 把你的函数原型放进去
完毕。
示例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; }
然后您可以将“whatever.h”包含到任何其他.c 文件中,并将其与whatever.c 的目标文件链接。
像这样:
样本.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
要链接文件以创建可执行文件:
$ gcc sample.o whatever.o -o sample
您可以测试样品:
$ ./sample
3
$
于 2010-05-14T01:45:35.713 回答
3
头文件可以包含任何有效的 C 代码,因为它们在编译之前由预处理器注入到编译单元中。
如果头文件包含一个函数,并且被多个.c
文件包含,则每个.c
文件都将获得该函数的副本并为其创建一个符号。链接器会抱怨重复的符号。
技术上可以在头文件中创建static
函数以包含在多个.c
文件中。尽管通常不会这样做,因为它违反了在文件中找到代码和在.c
文件中找到声明的约定.h
。
请参阅 C/C++ 中的讨论:头文件中的静态函数,这是什么意思?更多解释。
于 2013-08-28T15:52:15.060 回答