c源文件中“#num string”的作用是什么

时间:2018-08-10 12:12:13

标签: c compilation preprocessor

在我的shell中执行echo 'int main(){}' | gcc -E -x c -时,得到以下输出:

# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 31 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 32 "<command-line>" 2
# 1 "<stdin>"
int main(){}

直到不久前,我相信以#开头的行是用于预处理程序的。由于本文源于预处理程序本身,因此对于c编译器而言,似乎也有这样的含义。但是,我看不到它们指示编译器执行的操作。我也不知道预处理器为什么要放置这些行,尤其是为什么它在输出中引用/usr/include/stdc-predef.h

0 个答案:

没有答案