需要解释C代码的行为
发布时间:2020-12-16 10:25:51 所属栏目:百科 来源:网络整理
导读:我需要一些关于这个C代码如何表现和返回值的解释 #includeiostreamusing namespace std;#define MY_MACRO(n) #n#define SQR(x) x * xint main(){ //coutMY_MACRO(SQR(100))endl; //cout sizeof(SQR(100))endl; cout sizeof(MY_MACRO(SQR(100)))endl; return
我需要一些关于这个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但它的回归9与cout<<的sizeof(MY_MACRO(SQR(100)))≤;< ENDL; 它的背后是什么? 解决方法
您没有使用正确的#n定义.这不是争论的数量.它使它成为一个字符串.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |