C++预处理器

        预处理操作是发生在程序编译开始之前,对C++源代码进行一些简单的处理。

        预处理器的任务如下:

        1.解析#开始的命令,如下常用预处理命令

                     #include 在 程序中包含头文件

          #if 条件
         #else 否则
         #elif 否则如果
         #endif 结束条件
         #ifdef 或 #if defined 如果定义了一个符号, 就执行操作
         #ifndef 或 #if !defined 如果没有定义一个符号,就指执行操作
         #define 定义符号、宏 
                     #define的缺点: 不支持类型检查; 不考虑 作用域符号名 不能限制在一个命名 空间中。
         #undef 删除一个符号
        #line 重新定义当前行号和文件名, 可以修改__FILE__返回的字符串,如下示例:
                #line 1000 把当前行号设置为1000
                #line 1000 "the program file" 修改__FILE__返回的字符串行号改为了1000,文件名改为了"the program file"
                 #line __LINE__ "the program file" 修改 __FILE__返回的字符串行号没变,文件名改为了"the program file"
       #error 输出编译错误 消息, 停止编译。示例如下:
              #ifndef __ cplusplus
             #error "Error - Should be C++"
             #endif
       #pragma 提供 机器专用的特性,同时保证与C++的完全兼容
    2.删除注释
   一些常用的预处理器宏 如下:
              __LINE__ 当前 源文件中的代码行号, 十进制整数
              __FILE__  源文件的名称,字符串 字面量
             __DATE__  源文件的处理日期,字符串字面量,格式mmm dd yyyy其中mmm是月份如Jan、Feb等 dd是01-31 yyyy是四位的年份
             __TIME__ 源文件的编译 时间,也是字符串字面量格式是hh:mm:ss
            __STDC__ 这取决于实现方式,如果 编译器选项设置为编译标准的C代码,通常就定义它,否则就不定义它
           __cplusplus 在编译C++ 程序时,它就定义为199711L

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值