C++之预处理

        预处理是指在进行程序编译的第一遍扫描(词法扫描和语法分析)之前所做的工作。预处理是C语言一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分进行处理,处理完毕自动进入对源程序的编译。

        预处理程序(预处理器)包含在编译器中。预处理程序首先读源文件,预处理的输出是“翻译单元”,它是存放在内存中的临时文件。编译器接受预处理的输出,并把源代码转化为包含机器语言指令的目标文件。

        预处理器的作用是通过预处理的内建功能对一个资源进行等价替换,最常见的预处理有文件包含、宏替换、条件编译和布局控制4种。

1 文件包含

        有两种格式,一种格式是#include <文件名>,这些头文件一般保存在C++的系统目录下的include子目录下,这种格式是标准方式。另一种格式是 #include "文件名",预处理器遇到这种格式的包含指令后,首先在当前文件所在目录中进行搜索,如果找不到,再按标准方式进行搜索。

2 宏替换

        #define,这是最常见的一种用法,它可以定义符号常量、函数功能、重新命名、字符串拼接等功能。

3 条件编译

        #if #ifndef #endif #undef等也是比较常见的预处理,主要是编译时进行有选择的挑选,猪是调一些指定的代码,以达到版本控制、防止对文件重复包含的功能。

4 布局控制

        #progma ,为编译程序提供非常规的控制流信息,有以下几种:

4.1 #progma warning(disable:XXX)

        在程序编译时不显示XXX警告信息

4.2 #progma comment(…)

        该指令将一个注释记录放入一个对象文件或可执行文件中。常用的lib关键字可以用于连接一个库文件,比如 #progma comment(lib,"user32.lib")指令用来将users2.lib库文件加入到工程中。

4.3 #progma once

        只要在头文件的最开加入这条指令,就能够保证头文件被编译一次。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值