头文件
事项1:当代码中使用了某个函数,那么一定要包含其对应的头文件。
这是因为如果没有包含头文件,那么必然会缺少函数的声明。如此一来,编译器就会认为函数的返回值为 int
。这可能会导致很严重的错误,示例代码如下。
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
int main()
{
FILE *fp;
fp = fopen("tmp", "r");
if (fp == NULL) {
fprintf(stderr, "fopen failed: %s\n", strerror(errno));
exit(1);
}
exit(0);
}
使用 gcc 编译然后运行可执行文件,会报段错误。修复以上的方式是加上头文件 string.h
。
除此之外,如果使用 clang 编译,会发现以上代码无法通过编译。
警告
事项2:处理所有的警告,除非你能够解释警告的合理性。
为了在编译时发现所有的警告信息,可以这么进行编译:gcc hello.c -Wall
。