宏的##嵌套问题
错误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;
}