c - 隐式头包含在 C 中

标签 c compilation linker include

program.c :

int main () {

    hello();
    return 0;
}

tools.c :

void hello (void) {

    printf("hello world\n");
}

Makefile :

program : program.o tools.o

在这个程序的文件集中我没有tools.h 文件,即使它编译得很好没有错误,有人能解释一下 C 程序中头文件的用途吗?

目前我只有一个想法:编译层需要结构体等变量...

但在我的例子中,如果头文件只包含函数原型(prototype),是否需要更长的时间来构建它? (makefile 链接器语法更容易理解)。

最佳答案

头文件通常包含在源 C 文件中定义的函数的声明。

它有什么作用?

  • 它为您提供了额外的安全性,编译器根据声明检查传递给函数的参数,如果发现不一致则报告错误。
  • 它们允许将接口(interface)与实现分离。基本上,这允许您将代码(实现)作为一个库提供,客户需要链接到该库,而只在他们的应用程序中包含接口(interface)头文件。

关于c - 隐式头包含在 C 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9978298/

相关文章:

c - 更改数组数据的函数 - 数据不变。 C

c - 使用 fscanf 在 C 中读取

c - 如何排除 Asterisk 的套接字连接故障

java - 如何找到主类?入口点?

将简单循环转换为 do-while

iphone - 何时使用 Xcode 分布式构建功能

c++ - 链接 .lib 文件时出现 VC12 命令行错误

c++ - boost 链接器错误 - 正则表达式 - C++

dll - 配置脚本不启用 make 生成共享库

C++ 链接器错误