宏定义(define)

1. 概念

宏定义又称为宏代换、宏替换,简称“宏”。
格式: define 标识符 字符串
其中的标识符就是所谓的符号常量,也称为“宏名”。
预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。

2.示例

(1)、#define PRINTX printf(“%d\n”, x)
在C程序中,以“#”字符开头的代码都是一条C预处理器语句。预处理器的工作之一是把一个记号字符串替换为另一个。该define语句告诉预处理器把代码里的“PRINTX”记号全部替换为字符串”printf(“%d\n”, x)”。
(2)、#define PRINTX(x) printf(“%d\n”, x)
其中”PRINT”是一个带参数的宏。在遇到带参数的宏时,C语言的预处理器将分两步进行替换:先把宏定义里面的参数替换为实际参数,再把宏调用替换为宏定义体。
(3)、#define PRINTX(x) printf(#x “%d\n”, x)
这个”PRINT”宏需要用到C语言预处理器的”#”操作符和字符串合并操作。在扩展的时候,形式参数x将被替换为宏调用里的实际参数;在形式参数的前面加上一个”#”字符作为前缀,将使得实际参数被括在一对双引号里面;最后,C语言预处理器会自动将相邻的字符串合并。
(4)、#define PRINTX(format,x) printf(#x “=%” #format “\n”, x)

3.程序

#include<stdio.h>

#define PRINTX1 printf("%d\n", x)
#define PRINTX2(x) printf("%d\n", x)
#define PRINTX3(x) printf(#x"=%d\n",x)
#define PRINTX4(format,x) printf(#x "=%" #format "\n",x)

int main()
{
    int x = 1; PRINTX1;
    int y = 2; PRINTX2(y);
    int z = 3; PRINTX3(z);
    int n = 4; PRINTX4(d, n);

    return 0;
}

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值