宏定义的一些用法

C及C++通过预处理器提供了一些语言功能, 最常用的有#include指令, 用于包含头文件, 其他如#define及宏定义, 也被称为宏替换, 当编译器编译到带宏定义的语句时, 会直接替换为定义语句.例如, 假如我定义有#define MAXLENGTH 100, 那么, 在编译器编译到所有MAXLENGTH时则会自动替换为100.
宏定义的形式如下:
#define 定义名 替换文本
比较简单的用法则为定义一些在程序中比较常用的常量, 以节省内存. 当然根据宏定义的特性, 我们也可以衍生出一些比较特殊的用法, 如图
在这里插入图片描述
我定义了一个名为PRINT的宏, 并可对其传入参数, 它将被替换为一个控制台输出参数的语句, 实际上有点像定义了一个用于控制台输出的方法, 对其调用如图
在这里插入图片描述

运行程序即可输出字符串hello world, 如图
在这里插入图片描述

实际上, 在编译器编译到PRINT(“hello world”)时, 将会被替换为cout << “hello world” << endl;
那么很显然, 宏定义与函数调用还是有所不同的, 比如当我们传入带有计算表达式的实参时, 它得出的结果将与函数调用的结果有所不同.如图:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值