宏的##嵌套问题

Posted aron566

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了宏的##嵌套问题相关的知识,希望对你有一定的参考价值。

宏的##嵌套问题

错误demo

#define VAL 55
#define CAT_STR(A, B) A##B

int main(void)

	// 当宏表达式的形参给 宏 [VAL] 出现问题
	int CAT_STR(Temp, VAL); //展开得: int TempVAL; 你期望的是int Temp55;
	printf("Temp = %d", Temp);
	return 0;

改正demo

#define VAL 55

#define _CAT_STR(A, B) A##B

#define CAT_STR(A, B) _CAT_STR(A, B)

int main(void)

	int CAT_STR(Temp, VAL);
	printf("Temp = %d", Temp);
	return 0;

以上是关于宏的##嵌套问题的主要内容,如果未能解决你的问题,请参考以下文章

C#define嵌套在#ifdef中[重复]

从 Excel VBA 运行嵌套的 Access SQL 查询

SWIG 不扩展嵌套宏“错误:输入中的语法错误 (3)”

LaTeX怎么实现的嵌套关系

嵌套的 if else 语句无法通过目标单元格工作

keil4预处理器宏过于嵌套怎么解决?