目录
一、宏定义
宏定义可以:提高效率、可读性、易改性、核心是替换
1、不带参数的宏定义
#define 标识符 字符串
标识符:宏定义的名字 (建议大写)
字符串:常数、表达式、格式串等
宏定义是一个临时的符号,是不占用内存的,属于预处理程序中代码
例如:#define PI 3.14159
2、带参数的宏定义
#define LED1(X) do{ x?\
A:\
B;\
}while(0)
建议使用do{.....}while(0)来构造宏定义,这样不会受到大括号、分号、运算符优先级等的影响
二、条件编译
让编译器只对满足条件的代码进行编译,不满足条件的不参与编译
举例:头文件的条件编译结构
#ifndef _LED_H
#define _LED_H
#include "./SYSTEM/sys/sys.h"
code
#endif
三、extern声明
放在函数/变量前,表示此函数/变量在其他文件定义,以便本文件引用
extern uint16_t g_usart_rx_sta;
extern void delay_us(uint32_t nus);
g_usart_rx_sta:一个全局变量
delay_us: 一个函数
extern的作用是:告诉编译器,在这个文件中,我要调用这个变量/函数,你需要去其他的文件中找到这个变量/函数