如果没有使用头文件中包含的函数,编译器是否仍然编译此文件?

时间:2013-07-25 05:21:50

标签: c compiler-construction compilation theory

在进行数学计算时,我说#include“math.h”在一个简单的C程序中,所以我可以将常量用于PI。然后,我取出了'math.h'的用法而没有实际删除#include。这个不相关的文件是否仍然可以编译并使我的程序更大或者会被忽略?

1 个答案:

答案 0 :(得分:3)

对没有可解析代码的头文件使用预处理器指令#include不会增加已编译二进制文件的大小。

通常,头文件通常只包含声明 - 而不是定义。因此,包含C头文件通常不会增加二进制文件的大小。

例如 - 在头文件中此语句int maxlines; 将创建一个变量的定义,该变量将存储在已编译的二进制文件中。包含定义会增加二进制文件的大小。 然而,函数声明和预处理器标记(例如int parseFiles(const char *file);#include MAX_LINES 80)不会增加程序大小。

保持#include语句的一个效果是增加编译时间。