Lit*_*ter 5 c++ compiler-construction gcc g++ c-preprocessor
使用此选项,我在预处理后收到文件.有很多行像:
# 91 "/usr/include/stdint.h" 3 4
Run Code Online (Sandbox Code Playgroud)
这些数字是什么意思?首先,我认为这#91是包含文件的行数,但不是这样.关于3 4我根本不知道.
根据官方文档,该行的格式为:
# linenum filename flags
Run Code Online (Sandbox Code Playgroud)
该linenum指定下列线起源于filename在该行号.然后有四个标志:
1 - 开始新文件2 - 返回文件3 - 系统头文件4 - 对待被包裹 extern "C"那么让我们来解释你的线标记:
# 91 "/usr/include/stdint.h" 3 4
Run Code Online (Sandbox Code Playgroud)
以下行来自第91行/usr/include/stdint.h.它是一个系统头文件,应该被视为包装extern "C".
这些被称为"线标记".从文档:
源文件名和行号信息由表单行传达
Run Code Online (Sandbox Code Playgroud)# linenum filename flags这些被称为线性标记.它们根据需要插入到输出中(但从不在字符串或字符常量内).它们意味着以下行起源于文件filename
linenum.filename绝不会包含任何非打印字符; 它们被八进制转义序列取代.后的文件名来零个或多个标志,它们是
‘1’,‘2’,‘3’,或‘4’.如果有多个标志,则空格将它们分开.这是标志的意思:
‘1’- 这表示新文件的开始.‘2’- 这表示返回文件(包含另一个文件后).‘3’- 这表示以下文本来自系统头文件,因此应禁止某些警告.‘4’- 这表示以下文本应被视为包含在隐式extern "C"块中.
| 归档时间: |
|
| 查看次数: |
2006 次 |
| 最近记录: |