关于宏是否修改参数值
如下代码,值value没有改变,为什么?宏不是简单的文本替换吗?
#define CROL( value, bits ) ( ( value << bits ) | ( value >> ( 0x20 - bits ) ) )
unsigned int value = 0xaffffffa;
CROL( value, 2 );
printf( "0x%x\n", value );
下面这样就改变了:
unsigned int value = 0xaffffffa;宏
printf( "0x%x\n", CROL( value, 2 ) );
[解决办法]
为什么楼主觉得value的值要改变,CROL( value, bits )这个宏有改变value的值吗?value没有赋值运算啊