预处理指令
在文件翻译成0和1之前做的操作我们称之为预处理指令
一般情况预处理指令都是以#号开头
预处理指令分为宏定义、条件编译、文件包含
宏定义
宏定义的作用
会在程序翻译成0和1之前,将所有宏名替换为宏的值
宏名定义规范
- 定义宏名使用 #define 宏名 进行定义,宏名尾部不需要用分号结尾
- 定义宏名的2种方式:
- 1.宏名使用大写字母,多个单词用下划线隔开。例如:#define COUNT
- 2.宏名使用k开头,多个单词直接使用驼峰命名。例如:#define kClassCount
注意: 宏定义不要以分号结尾
宏定义的作用域
- 从定义的那一行开始,一直到文件末尾
- 虽然默认情况下宏定义的作用域是从定义的那一行开始,一直到文件末尾,但是我们也可以通过对应的关键字undef提前结束宏定义的作用域
宏定义的使用场景
- 我们的app需要频繁的于api进行交互获取数据进行展示,不同页面调用api的路由不同,但是域名是相同的,此时可以将域名定义为宏
#include <stdio.h>
// 定义宏变量API_DOMAIN
#define API_DOMAIN "http://api.api.com"
int main(int argc, const char * argv[]) {