C中#include的成本

1 c include

说#include并且从不使用stdio.h中的任何内容.与此相关的间接成本是多少?

我注意到很多网络代码包括他们可以想到的所有网络相关的标题,以防他们最终使用其中一个的东西,所以我想知道这是否是某种易用性与效率权衡,或者如果没有效率低下.

Ter*_*fey 11

主要是编译时开销,因为编译器必须包含并解析该文件.


Jam*_*olk 6

它应该只影响编译速度,而不是执行速度.至于编译时间开销,对于大型项目来说,它可能是显而易见的,但了解它如何影响您的项目的唯一方法是测量包含和不包含的编译时间.