C++ "#include"输出说明

c++ "#include" output explanation

本文关键字:说明 输出 #include C++      更新时间:2023-10-16

试图了解#include的工作原理。我正在阅读,在预处理期间,它只是用引用文件的内容代替了自己。

要验证,我创建了两个文件。一个名为otherfile的文件,仅包含字符串1234和一个包含

的文件test.cpp
#include otherfile
abcd

我运行 g++ -E test.cpp,我得到的输出是

# 1 "test.cpp"
# 1 "<built-in>" 1
# 1 "<built-in>" 3
# 373 "<built-in>" 3
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "test.cpp" 2
# 1 "./wtf" 1
1234
# 2 "test.cpp" 2
abcd

其余的线从何而来,它们是什么意思?

其余的线来自

它们是由预处理器添加的。

这是什么意思?

根据文档

源文件名和行号信息由表单的行传达

的行
# linenum filename flags

这些称为线条标记。根据需要将它们插入输出(但永远不会在字符串或字符常数中)。它们的意思是以下行源于Line Linenum的文件文件名。文件名将永远不会包含任何非打印字符;它们被八进位序列取代。