💡
原文中文,约1400字,阅读约需4分钟。
📝
内容提要
介绍嵌入式开发中常用的宏定义,包括防止头文件重复定义、自定义数据类型、获取指定地址上的字或字节、获取最大/最小值、返回数组元素个数、将首字母转换为大写、判断字符是否为十进制或十六进制。提高项目的兼容性和可移植性。
🎯
关键要点
- 嵌入式开发中常用的宏定义提高项目的兼容性和可移植性。
- 防止头文件被重复定义的宏示例:#ifndef COMDEF_H #define COMDEF_H ... #endif。
- 自定义数据类型以避免不同平台和编译器导致的类型字节数差异。
- 获取指定地址上的字或字节的宏示例:#define MEM_B( x ) ( *( (byte *) (x) ) )。
- 获取最大值和最小值的宏示例:#define MAX( x, y ) ( ((x) > (y)) ? (x) : (y) )。
- 返回数组元素个数的宏示例:#define ARR_SIZE( a ) ( sizeof( (a) ) / sizeof( (a[0]) ) )。
- 将字符首字母转换为大写的宏示例:#define UPCASE( c ) ( ((c) >= 'a' && (c) <= 'z') ? ((c) - 0x20) : (c) )。
- 判断字符是否为十进制的宏示例:#define DECCHK( c ) ((c) >= '0' && (c) <= '9')。
- 判断字符是否为十六进制的宏示例:#define HEXCHK( c ) ( ((c) >= '0' && (c) <= '9') || ((c) >= 'A' && (c) <= 'F') || ((c) >= 'a' && (c) <= 'f') )。
➡️