【发布时间】:2021-03-04 14:52:01
【问题描述】:
我看到 gcc 预处理的以下输出。我没有找到输出格式的文档。谁能让我知道它是什么?谢谢。
$ cat a.h
#include "b.h"
$ cat b.h
#define X Y
$ gcc -E -dD - <<< '#include "a.h"'
...
# 1 "<command line>" 1
# 1 "<built-in>" 2
# 1 "<stdin>" 2
# 1 "./a.h" 1
# 1 "./b.h" 1
#define X Y
# 2 "./a.h" 2
# 2 "<stdin>" 2
当我尝试以下操作时,我看到了更多与上面不同的数字。我也不确定它们是什么意思。
$ gcc -E -dD - <<< '#include <sys/socket.h>'
...
# 19 "/usr/include/x86_64-linux-gnu/asm/posix_types_64.h" 2 3 4
# 8 "/usr/include/x86_64-linux-gnu/asm/posix_types.h" 2 3 4
# 37 "/usr/include/linux/posix_types.h" 2 3 4
# 6 "/usr/include/asm-generic/socket.h" 2 3 4
# 1 "/usr/include/x86_64-linux-gnu/asm/sockios.h" 1 3 4
# 1 "/usr/include/asm-generic/sockios.h" 1 3 4
...
【问题讨论】:
标签: gcc clang c-preprocessor