这个s(i,j)为什么不是逗号表达式? 本帖最后由 imur2008 于 2011-11-24 01:09:45 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 printf("%d\n",S((i,j))); 这样试试 楼主的写法 i,j 参与替换的话宏的实参太多,截断(?)了,6参与运算了,就是 4*6*6+11楼的写法就是 (i,j) 参与替换, (i,j)这样赋值的话值是算最后一个运算式,那就是j=8,8参与运算,4*8*8+1 #define S(X) 4 * (X) * (X) + 1 #define 宏就是严格替换不会做其他事情的 换个别的表达式你就懂了如果算的是 S(i+j), 那结果就是 4*i+j*i+j+1 ,替换的时候不会自动给你加上括号的S((i+j)) 的结果才是 4*(i+j)*(i+j)+1这一般都是卷面上才会出现的奇葩问题 [奖励:结贴单独给分!!!]请教~想实现这样的效果:"win32创建的两个窗口,每次只关闭一个" 指针数组赋值问题 急急??? vc用ole调用word,excel时如何屏蔽“服务器正在运行中”的对话框? 【IE 插件问题】还是这个插件,在网页为多框架(frame)是出错! 什么是josephus ADO数据库操作的问题 COM编译出错,请高手看看! 无线通信//都会走一遍osi七层吧?走到传输层用tcp/udp协议发送数据吗? GetCommandLine获取参数 调试问题请高手指点! DLL 隐式加载 memcpy 第2个参数使用常数,怎么进行类型转换
1楼的写法就是 (i,j) 参与替换, (i,j)这样赋值的话值是算最后一个运算式,那就是j=8,8参与运算,4*8*8+1
如果算的是 S(i+j), 那结果就是 4*i+j*i+j+1 ,替换的时候不会自动给你加上括号的
S((i+j)) 的结果才是 4*(i+j)*(i+j)+1
这一般都是卷面上才会出现的奇葩问题