.#开头是编译预处理指令
.它们不是C语言的成分,但是C语言程序离不开它们
.#define 定义一个宏
.gcc 编译C文件时的过程:
.cpp 文件经过编译预处理,将所有编译预处理内容都替换
完生成 .i 文件,经过编译生成汇编代码 .s, 汇编代码
文件经过汇编生成目标代码文件 .o,经过链接目标代码
文件生成可执行文件 a.out
.define
.#define <名字> <值>
.注意,没有结尾的分号,因为不是C的语句
.名字必须是一个单词,值可以是各种东西
.在C语言的编译器开始编译之前,编译预处理程序
(.cpp)会把程序中的名字换成值
.完全的文本替换
.gcc --save-temps 命令查看编译产生的中间文件
.宏[1-2cpp]
.如果一个宏的值中有其他宏的名字也是可以被替换的
.如果一个程序中宏的名字超过一行,最后一行之前的
行末尾需要加入
.宏的值后面出现的注释不会被当作宏的一部分
#include <stdio.h>
#define PI 3.1415926
#define PI2 2*PI //PI*2
#define FORMAT "%f\n"
#define PRT printf("%f ", PI);\
printf("%f\n", PI2);
int main(int argc, char const