C语义的预处理 - 宏定义中 # 和 ## 的意义及用法

宏定义基本语法

C 语言中,所有预定义的宏,都会在预处理阶段进行替换。宏定义的语法为:

#define 宏名 字符串

简单宏定义

下面的示例中,预处理后,所有出现 MAX 的位置都会被替换为 100:

#include <stdio.h>
#define MAX 100

int main() {
	printf("MAX is: %d\n", MAX);
	return 0;
}

宏定义中使用变量

#include <stdio.h>
#define CHANGE(x) (x * x)

int main() {
	printf("CHANGE(10) is: %d\n", CHANGE(10));
	return 0;
}

宏定义中使用 #

# 表示字符串化,单纯的使传过来的变量变成字符串。

#include <stdio.h>
#define CHANGE(x) #x

int main() {
	printf(CHANGE(xyz));
	return 0;
}

宏定义中使用 ##

## 是普通的链接符号,表示单纯的链接前后的字符串。因为是在预处理阶段替换完成的,可以间接的使用变量。

#include <stdio.h>
#define DAY(x) day ## x

int main() {
	int day1 = 11;
	int day2 = 22;
	printf("day is:%d\n", DAY(1));
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值