【发布时间】:2020-07-10 21:58:42
【问题描述】:
是否有可能无法从其他文件访问 ANSI C 中的函数?功能如何以及何时限制访问?起初我认为如果一个函数不包含在任何标题中,它就是私有的。 But it doesn't seem to be the case.
【问题讨论】:
-
当函数为
static时,它们的作用域就是那个编译单元。严格的 C 要求函数声明或定义在调用函数之前可见,但编译器可能是允许的,并且链接器可以找到函数。类型和参数假设必须匹配。 -
头文件没有什么神奇之处。
#include指令只是在翻译阶段 4 将文件的文本插入到编译单元中。编译器在翻译阶段 7 之前对函数一无所知。头文件是在不同 .c 之间共享公共声明的好方法文件。
标签: c ansi-c global-functions