预编译头文件:*.h.gch文件

预编译头文件,就是将头文件事先编译成一种二进制的中间文件。比如下面代码:

gcc -c a.h a.c

其中,由于 a.h 被当成 *.c 文件一样进行编译,生成了一种二进制中间格式的文件(a.h.gch)。

a.h 文件 和 a.c 文件分别被解析,合并,并通过编译生成了 a.o 文件。虽然 a.o 文件中包含了很少的头文件代码,头文件的大小并没有对 a.o 文件的规模产生很大影响,但是对头文件的解析话费的时间,却不容小觑。如果生成 *.gch 文件,再次包含该头文件时就不用再次解析。

该类文件的特性:

  • 生成的是被解析完成的二进制中间件
  • 编译 *.gch文件时,所用到的 *.h 文件必须在当前目录下,因为编译头文件不会过环境变量或者-l进行路径搜索
  • *.gch 文件和所对应的 *.h 没有必要的联系,也就是说对 *.h 文件进行修改时 *.gch文件不会自动修改,需要重新编译。因此通常情况下,不轻易改变的头文件才会编译成中间件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值