如果头文件中没有使用任何函数,编译器还会编译这个文件吗?

问题描述 投票:0回答:1

假设我在一个简单的 C 程序中#include“math.h”,同时进行数学计算,这样我就可以使用 PI 常数。然后,我删除了“math.h”的用法,但没有实际删除#include。 这个不相关的文件是否仍然可以编译并使我的程序变得更大还是会被忽略?

c compilation theory
1个回答
3
投票

对没有可解析代码的头文件使用预处理器指令

#include
不会增加编译后的二进制文件的大小。

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

例如 - 在头文件中此语句

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

保留 #include 语句的一个影响是稍微增加编译时间。

© www.soinside.com 2019 - 2024. All rights reserved.