预处理器

预处理器
预处理器的本质是一个程序,它的功能是执行预处理指令,并输出一个新的修改后的程序到编译器。
在这里插入图片描述
指令的规则

  • 以#开始。
  • 指令可以出现在程序中任何地方。 通常将#define和#include放在文件开头,其他指令则放在后面。
  • 指令的负号之间可以插入任意数量的空格或横向制表符。
  • **指令在第一个换行符处结束。**除非加“ \ ”。
  • **注释可与指令放在同一行。**常常需要在宏定义后面加注释解释。

一、宏定义

① #define 标识符 替换列表

  • 基本功能: 用一个标识符去代替 a.标识符、b. 数字、c. 字符常量、d. 字符串常量、e. 运算符、f. 标点符号。

  • 具体功能:

    • 程序易读。选取符合实际意义的常量名。
    • 程序易于修改。只需改变宏定义的内容,即可改变程序中所以相关的值。
    • 避免输入错误
    • 改编程序。可在宏定义中用一些标识符代替关键字。
    • 控制条件编译
  • 缺点:

    • 编译后的代码变大。
    • 宏参数没有类型检查。
    • 无法用一个指针来指向一个宏。
    • 宏可能不止一次的计算它的参数。
  • 注意事项:

    • 标识符后的一切字符都会被当做替换列表的一部分。 由于编译器处理的是预处理过的程序,所以编译时无法找到宏定义的错误。
    • 宏的替换可以包含对另一个宏的调用
    • #undef能删除已定义的宏。
    • 预处理器只会替换完成的记号,而不会替换记号的片段。

② #define 标识符(x1,x2····) 替换列表

define与
功能
宏的通用属性

  • 作为一个简单的函数

二、文件包含

三、条件编译

① #if 与 #endif

② #ifdef 与 # ifndef

③ #elif 与 #else

应用

四、其他指令

①#error

②#line

③#pragma

被包含的文件不一定是以 .h 做后缀

在程序的一行中出现1个有效的预处理命令行

预处理行不是c的合法语句

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值