编程:
人类语言 --->编程语言(C语言)---汇编语言--->机器语言(01010)
编译过程:
预处理 编译 汇编 链接
一、宏定义
#define 标识符 字符串
#define 宏名 宏值
#define N 100
表示,定义了一个宏 (符号),而这个符号 代表的值 就是100
#define 宏名(参数) 宏值
说明
1. 预处理阶段,只做文本原样替换
2. 宏 就是用 宏值 将 宏名 原样替换
3. 用途
当作常量来用
好处,可以做到 一改全改,方便操作
4. 宏名
符合标识符命名规则
宏名,一般都是大写 --- 主要是为了和普通变量名区分
5. 程序中 处于 ""中的 宏名 不会被替换
6. 宏名 不要和关键字重名
7. 宏替换过程中,存在宏的副作用 ---- 文本的原样替换
处理:
能加括号的尽量都加括号
8. 宏定义 只能放在一行
9.宏定义的作用范围
二、文件包含
#include "文件名"
//首先在当前路径下寻找要包含的文件,找不到再到系统默认路径下寻找
#include <文件名>
//默认到系统指定路径下寻找头文件
作用:
将文件名代表的文件中的内容 ,替换到当前文件
三、条件编译
条件编译: //也是文本替换 --- 符合条件的文本
(一)形式一
test.i文件
增加宏定义
增加宏定义后的test.i文件
(二)形式二
#ifdef 标识符
程序段1
#endif
(三)形式三
#ifndef 标识符
程序段1
#else
程序段2
#endif
(四)形式四
#if 表达式
程序段1
#else
程序段2
#endif
//常用于注释代码
四、多文件编程
main.c
|--add.c //自己的点c通常会包含自己的点h
|--add.h //一部分是 对外的函数声明 一部分时自己的点c需要用到的头文件等内容
|--sub.c
|--sub.h
对于重复包含的头文件 //避免重复定义
如果不用预处理命令进行操作