个人理解—预处理

        编译工具链=预处理器+编译器+汇编器+链接器+......

        预处理器就是干杂事,例如include、注释、条件编译、宏定义。

        预处理后,宏定义就被替换了,但是typedef还在,说明typedef是不由编译器处理的,而是由编译器处理的。

#define pchar char*

pchar p3;
pchar p1,p2;
typedef char* PCHAR

____________________预处理后______________________________

char* p3;
char*p1,p2;
typedef char* PCHAR (依旧还在)

        <xxx.h>与“xxx.h”的区别, <xxx.h>的头文件由编译器或操作系统配置区提供。“xxx.h”会先在当前目录寻找,再去系统或编译器目录寻找头文件。

        头文件会在预编译(预处理)阶段被展开(除了注释之外的包括空格空行都会搬过去)。

         条件编译(#if):希望有多种配置。

#define NUM
.
.
.
int a=0;
#ifdef NUM
a=111;
#elif
a=222;
#else
#endif;

        就算NUM放在别的头文件里,且被包含在#ifdef前,都有作用,这也就是头文件放在宏定义前面的原因之一。

        #ifxxx是预处理的指令之一,在预处理结束后将判断成功的进行保留,不符合的区域会被清理。

         #ifdef xxx判定在此之前是否定义过xxx,如果定义则就会成立。预处理的语句不属于编译器,也就是说明不属于正式语句,在预处理结束后会进行替换与清理。

        #elif(条件)使用方法与if...else...一样。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值