2017-02-20 100 views
1

我在我的终端上运行prova.c文件。
我跑GCC的命令行:gcc的这些行是什么意思?

gcc -Wall -std=c99 -E prova.c 

prova.c:

int main(int argc, char* argv[]) { 
      int a=1; 
      int b=2; 
      return a+b; 
    } 


标准输出:

# 1 "prova.c" 
# 1 "<built-in>" 
# 1 "<command-line>" 
# 1 "/usr/include/stdc-predef.h" 1 3 4 
# 1 "<command-line>" 2 
# 1 "prova.c" 
int main(int argc, char* argv[]) { 
    int a=1; 
    int b=2; 
    return a+b; 
} 

什么每一行与在哈希意味着什么?
为什么我们需要它们来生成?
如果您有时间我想对每一行有一个比一般答案更多的解释。我知道其中有些是线条标记。
如果您知道共享这些主题的资源将非常棒。

+0

星号是'*'。 – Filburt

+0

谢谢,我编辑了它 –

+0

当你将-E开关传递给gcc时,你期望什么? –

回答

0

这不是一个完整的答案,因为你愿意,但它可以给你一些提示。

给予gcc-E说法有(link)

停止预处理阶段之后;不要运行编译器。输出采用预处理源代码的形式发送到标准输出。

这解释了你得到的命令# 1。现在,您可以阅读有关预处理器输出here的文档。它说:

'1' 这表示新文件的开始。

我不确定# 1块内的命令。

+0

谢谢你试图帮助!无论如何,你不是很好奇,知道他们究竟意味着什么吗? –

+0

我是。也许不如你:) – ChronoTrigger

+0

好吧,让我们希望有人会使我高兴! –