C++/C中的预处理命令;

<分析>

预编译又称为预处理 ,是做些代码文本的替换工作。处理 # 开头的指令 , 比如拷贝 #include 包含的文件代码, #define 宏定义的替换 , 条件编译等,就是为编译做的预备工作的阶段,主要处理#开始的预编译指令,预编译指令指示了在程序正式编译前就由编译器进行的操作,可以放在程序中的任何位置。

c/c++编译系统在对程序进行通常的编译之前,先进行预处理。 c 提供的预处理功能主要有以下三种:1 )宏定义  2 )文件包含  3 )条件编译,以下为使用预处理命令时需要注意的地方:

(1)预处理命令可以放在程序的任何位置;

(2)预处理指令中不容许出现空格;

(3)一行上只能有一条预处理命令,一个预处理命令可以放在多行,行尾用‘\’表示;

(4)宏名最好大写,但是不是硬规定;

(5)宏替换不占用程序运行时间,在编译的时候进行;

(6)文件包含#include<filename>是通过系统环境变量指定系统库目录进行查找的,    #include“filename”是通过实在的用户目录下查找的,用户的目录就是通过编译器指  定的,如果查找不到再去库文件里查找。库文件可以用<>也可以用“”,但是用户定义   头文件只能用“”,所以<>比””查找范围小;

(7)预编译器在编译的时候按照程序前后顺序就把值一个一个替换进去了,所以它不会考虑运行时候的逻辑关系,例如:

                                                                           #define a 10

void foo();  // 函数声明

                                                                           int main(){

                                                                                printf("%d..",a);

                                                                                foo();

                                                                                printf("%d",a);

                                                                           }

                                                                           void foo(){

                                                                                #undef a

                                                                                #define a 50

                                                                           }

以上程序输出是10..10

                                                 ##################################

                                                                          #define a 10

                                                                          void foo(){

                                                                                #undef a

                                                                                #define a 50

                                                                          }

                                                                          int main(){

                                                                                printf("%d..",a);

                                                                                foo();

                                                                                printf("%d",a);

                                                                          }

以上程序50..50

                                                ####################################

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值