#include实际上做了什么?

Zir*_*rak 24 c include

在C语言(或基于C语言)中,人们可以愉快地使用这个语句:

#include "hello.h";
Run Code Online (Sandbox Code Playgroud)

瞧,每个功能和变量都hello.h可以自动使用.

但它实际上做了什么?我查看了编译器文档和教程并花了一些时间在线搜索,但我可以形成的关于魔法#include命令的唯一印象是它"复制粘贴"内容hello.h而不是该行.不仅如此,还有更多.

Car*_*rum 24

从逻辑上讲,复制/粘贴正是发生的事情.我担心它已经没有了.但是你不需要;.

您的具体示例包含在规范中,第6.10.2源文件包含,第3段:

表单的预处理指令

# include "q-char-sequence " new-line

导致由"分隔符之间的指定序列标识的源文件的全部内容替换该指令.


pmg*_*pmg 6

那(复制/粘贴)正是#include "header.h"如此.

请注意,#include <header.h>当编译器找不到该文件"header.h"并且尝试#include <header.h>改为时,它会有所不同.