xcode构建系统及编译优化(二)

275 阅读1分钟

预处理优化

摘要: 介绍一点规范

C族语言基本上都有以下流程:

3.png

常用预编译指令:

  • 头文件导入,#import/#include
  • 条件编译, #if/#endif等
  • 文本替换,#define
  • 其它处理注释,警告等

查看源文件的预处理结果: xcode -> Product -> Perform Action -> Preprocess "xxx.m"

Screen Shot 2022-06-01 at 5.09.02 PM.png

编译阶段的优化可以考虑缩减预处理阶段的工作量

  1. 通过@class声明,可以避免头文件的递归导入,减少查找和处理的头文件
  2. 非公开的属性和方法,放到.m文件中
  3. 库文件建议指向准确导入的文件
  4. 使用<>代替“”导入三方库
PS:  @class (好处多多)
* 避免循环引用
* 避免头文件的递归操作,减少查找和处理的头文件
* 切断增量编译中头文件的依赖链

如果我们仔细观察过苹果官方的系统头文件,会发现里面已经是非常棒的实践

  • 库文件指向准确导入的文件
  • @class声明

Screen Shot 2022-05-30 at 10.52.32 AM.png