我需要一些关于这段 C++ 代码的解释,以及它如何返回值。
据我所知,
#include<iostream>
using namespace std;
#define MY_MACRO(n) #n
#define SQR(x) x * x
int main()
{
//cout<<MY_MACRO(SQR(100))<<endl;
//cout<< sizeof(SQR(100))<<endl;
cout<< sizeof(MY_MACRO(SQR(100)))<<endl;
return 0;
}
据我所知,
#n
返回MY_MACRO(n)
中参数的个数。但是如果在此之前使用SQR(100)
将被替换为100 * 100
(如果我们计算空格,则为9个字符)。但现在sizeof(9)
应该打印4,而cout<< sizeof(MY_MACRO(SQR(100)))<<endl;
返回9。这背后的原因是什么?
MY_MACRO(n) #n
),因此它将是sizeof(9)。 - Saurabh Sharma