假设存在下图所示的项目目录结构。ide
若是存在以下包含头文件的代码,则大多的项目中须要经过“-I foo”和“-I bar”指明两个搜索头文件的目录。spa
foo.c #include "bar.h"
bar.c #include "foo.h"
然而,当项目规模很大存在不少的目录时,这种方式将显著地下降项目的编译速度。由于“-I”选项使用得越多,意味着编译每个C文件时所需进行头文件搜索的目录也越多。3d
为了不这一问题,咱们能够将代码改成:blog
foo.c #include "bar/bar.h"
bar.c #include "foo/foo.h"
如此一来,整个项目只需一个“-I src”选项就好了。get
促使我意识到这一问题,是由于前段时间看到Blink开源项目的一封邮件,其中谈到采用上面的第二种方法后,在Windows上编译Blink的速度提升了40%。it