c - 预处理器如何处理 "#include"指令?

标签 c include c-preprocessor

当预处理器在源代码中遇到 #include 指令时,它到底会做什么?

我假设它用包含文件的内容替换了#include,但我想要比我的假设更强大的东西。

是否有任何理由不将包含文件的内容直接键入源代码而不是 #include 它,除了看起来更好之外?

最佳答案

预处理器将用文件的内容替换#include语句。

使用#include而不是简单地粘贴文件内容的好处是,如果头文件被修改,您所要做的就是重新编译源文件。如果您粘贴了文件的内容,则必须将其替换为新版本的头文件。

此外,如果您在多个位置 #include 一个文件(如常量和类型定义文件),则不必修改所有重复的声明,多次包含的文件会占用一个位置改变而不是几次。

关于c - 预处理器如何处理 "#include"指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27847506/

相关文章:

c++ - 在 Clion 中包含 mpi.h

c - libconfig:@include 指令的语法错误

c++ - 包含 jsonCpp header 的问题

c++ - 如何获取在 Main.cpp 中声明的全局变量以便在 header 中访问

c - C 项目的 IDE 中的预处理器感知代码导航

c++ - 什么时候可以在#include 指令中省略文件扩展名?

c - 在 C 中初始化长嵌套结构

c - 灵活数组成员(零长度数组)

c - Debian 中库 libpq 的问题

php - 显示前几页中声明的内存中的变量