预处理详解(二)-- 条件编译 - 头文件包含 - ##和#运算符


在这里插入图片描述

一.##和#运算符

1.#运算符(字符串化)

#运算符将宏的参数变成一个字符串 这里的#并不是#include或#define中的# 在举例子之前,说明一下字符串是有自动连接的特点的

printf("hello""world");
//打印后是helloworld

在这里插入图片描述

#define PRINT(n) printf("the value of" #n "is %d",n); 
int a = 10;
printf("the value of"#a"is""%d",a);
//      the value of a is 10

在这里插入图片描述

2.##运算符(粘合符)

##可以将位于##两边的符号合成一个符号
它允许宏定义从分离的文本片段创建标识符
##又被称为记号粘合

例如:

//求两个数(不同类型的变量)的最大值
//定义了函数模版
#define a_MAX(type) \
type type_##MAX(type x,type y) \
{
     
                                 \
  return ((x>y)?x:y);
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值