【发布时间】:2022-01-18 04:58:37
【问题描述】:
编译器如何知道我所包含的源文件是哪个? 只要头文件和源文件的名称相同,它就可以工作吗? 例如,头文件 example.h 引用 example.c,那么包含 example.h 就足够了?
【问题讨论】:
标签: c module header-files preprocessor compiler-directives
编译器如何知道我所包含的源文件是哪个? 只要头文件和源文件的名称相同,它就可以工作吗? 例如,头文件 example.h 引用 example.c,那么包含 example.h 就足够了?
【问题讨论】:
标签: c module header-files preprocessor compiler-directives
编译器如何知道我包含的是哪个源文件?
没有。编译器只知道你告诉它什么。头文件旨在告诉编译器其他地方存在什么。
只要头文件名和源文件名相同就可以吗?
没有区别。按照惯例,我们人类发现将它们命名为相同名称更容易,这样我们就可以将 example.h 和 example.c 关联为同一模块的标头和源代码。
例如,头文件 example.h 引用 example.c,那么包含 example.h 就足够了?
告诉编译器example.c中存在什么就足够了。
请记住,标头的目的是解释其他源文件中存在的内容。 (以及声明类型,它们本身不会创建代码。)
这是一个 C 问题,但在 learncpp.com 上有一个非常好的概述,它同样适用于 C 和 C++。具体来说,您可能希望通读:
【讨论】: