1.程序的翻译环境与执行环境
翻译环境:在这个环境中源代码被转换为可执行的机械指令
执行环境:用于实际执行代码
2. 翻译环境
(1)预编译/预处理:
把<stdio.h>等头文件解开,包含到代码中;define定义的替换,并且删除定义的符号;删除注释。
(2)编译:
把c语言代码转化成汇编语言;
(3)汇编:
把汇编代码转化成二进制指令(机械指令);
3.#define 定义宏
(1)
#define square(x) x*x
// 宏名 宏的参数 宏的内容
#define square(x) ((x)*(x)) //宏最好加括号,因为是完全替换
#define square(x,y) ((x)*(y))
int main()
{
int r = square(5); //r = 25
int r = square(5 + 1); //r = 5 + 1 * 5 + 1 = 11
//宏是完全替换的,没有括号
int r = square((5 + 1)); // r = 36
return 0;
}
#define square(x) ((x)*(x))
#define m 5
int main()
{
int r = square(m+1);
printf("%d\n", r);
return 0;
}
//#define 先替换数值m,再替换宏
#undef m //取消宏定义