2022.02.11.程序生成过程

程序生成的过程:
1. 预处理: .i文件
 头文件的展开:
 宏的替换
 预处理指令解析 #ifndef ,#if #ifdef #else #elif #endif
 去掉注释
2.编译: 预处理后的文件 生成汇编文件 .asm(汇编代码)
 词法解析、语法解析、语义分析、优化

3.汇编:汇编文件进一步处理 ,生成目标机器指令(二进制文件.obj)

4.链接:将多个目标文件(库文件)链接生成可执行程序(.exe,.out)。

// 替换作用,
#define AA 8


/* 反斜杠\: 连接当前行和下一行 ,最后一行一般不加 \ ,后面不要有任何字符(空格、tab、注释) */

#define BB for(int i=0;i<AA;i++){\
cout<<i<<endl;\
}

// 宏可以带参数:替换作用,不会做表达式的计算和求解
#define CC(NUM) for(int i=0;i<NUM;i++){\
cout<<i<<endl;\
}


#define Mul(A,B) ((A)*(B))

// ## 拼接
#define DD()\
int a##b = 20;


#define EE(CLASS)\
CLASS obj##CLASS;\
obj##CLASS.show();


//# : 将参数转成字符串 ,相当于加双引号
#define FF(PARAM)\
cout<<#PARAM<<endl;


//#@ 转成字符,相当于加单引号

#define GG(PARAM)\
char a = #@PARAM;

posted @ 2023-01-06 12:17  Rainzzxy  阅读(79)  评论(0)    收藏  举报