试图了解其#include工作原理。我正在阅读,在进行过程中,它只是将自己替换为引用文件的内容。
为了验证,我创建了两个文件。名为的文件仅包含otherfile字符串1234,而test.cpp包含的文件
#include otherfile
abcd
Run Code Online (Sandbox Code Playgroud)
我运行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
Run Code Online (Sandbox Code Playgroud)
其余的行是从哪里来的,它们是什么意思?
其余的行是从哪里来的
它们由预处理器添加。
它们是什么意思?
根据文档
源文件名和行号信息通过以下形式的行传达
Run Code Online (Sandbox Code Playgroud)# linenum filename flags这些称为线标记。它们根据需要插入到输出中(但绝不插入字符串或字符常量中)。它们的意思是以下几行起源于文件名filename在linenum行。filename绝不会包含任何非打印字符;它们被替换为八进制转义序列。
| 归档时间: |
|
| 查看次数: |
305 次 |
| 最近记录: |