广西●河池学院
广西高校重点实验室培训基地
系统控制与信息处理重点实验室
本篇博客来自河池学院: 智控无人机小组
写作时间: 2020年8月15日
周报
这周主要了解了宏定义、#if #ifdef #ifndef 用法区别、和重复定义 。
宏定义: 预处理(预编译),即宏展开,用具体内容替换宏名部分。预处理在程序编译过程中不做语法检查。
使用规则:
1、宏名一般用大写字母构成。
2、宏定义尾不加分号。
3、宏定义在函数外,其作用域始于该宏之后的程序,终于#undef命令或程序尾部。宏定义一般位于文件开始位置。
4、宏定义可以嵌套。
5、宏定义不分配内存,变量定义分配内存。
区别: #if defined可以实现复杂的预编译判断条件
#ifdef 不能组成复杂的预编译判断条件,在只有一个预编译条件的情况下,#ifdef 和 #if defined 是一样的。
重复定义:一般是工程里面的文件引入reg51.h,有的文件引入reg52.h这样就会报错重复定义。其方法如下:1、Ctrl +F
2、选择Find in Files全局搜索修改即可