C 语言中宏的正常用法
💡
原文中文,约1900字,阅读约需5分钟。
📝
内容提要
宏是在编译前由预处理器处理的替换规则,分为简单替换和函数风格。简单宏通过标识符替换为一系列tokens,函数宏则允许参数替换。常用宏如min、max和swap,能提高代码的效率和可读性。
🎯
关键要点
- 宏是在编译前由预处理器处理的替换规则,分为简单替换和函数风格。
- 简单宏通过标识符替换为一系列tokens,函数宏允许参数替换。
- 常用宏如min、max和swap,能提高代码的效率和可读性。
- 简单宏的定义格式为 #define identifier replacement-list。
- 函数风格宏的定义格式为 #define identifier (a1, a2, ... an) replacement-list。
- 使用宏可以在预处理期替换常量,如 int bigarray [MAXN]; 中的 MAXN 被替换为 10001。
- 函数形式的宏常用于实现复杂的逻辑,如 min、max 和 swap。
- swap 宏使用 do … while(0) 来确保多条语句合并为一条,避免条件执行问题。
- likely 和 unlikely 宏用于优化编译器的跳转预测,提高代码效率。
- container_of 宏用于从结构体成员指针获取包含该成员的结构体指针。
➡️