【发布时间】:2020-04-25 17:06:38
【问题描述】:
我一直在试验 C 的宏,并决定扩展它们以查看替换。当我为 gcc 提供 -E 时,我得到了 800 行代码,仅用于这个简单的代码:
#include <stdio.h>
#define TEN 10
int main(void) {
printf("hello world %d", TEN);
return 0;
}
我的问题:
- 为什么会有这么多行!?
- 这么多行,C 怎么能跑得这么快?
- 这么多行有问题吗?
【问题讨论】:
-
stdio.h有多少行? -
你明白gcc是一个编译器,所以源代码行数与可执行文件的性能没有密切关系?
-
不要害怕,它们不会成为生成代码的一部分,这会增加编译时间/内存,但与您的可执行文件无关
-
哦,好的。吓到我突然变大了。
-
@Xilpex 这 800 行什么都不是,当您将“经典”文件包含为 vector,string,iostream ... 时,在 c++ 中更多的是,相当于 stdio 在 c++ 中是 iostream,而在仅包含
#include <iostream>的文件上的g++ -E会产生超过 28000 行 ;-)
标签: c gcc macros line-numbers