读书人

关于宏是不是修改参数值

发布时间: 2013-10-02 13:10:38 作者: rapoo

关于宏是否修改参数值
如下代码,值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没有赋值运算啊

读书人网 >C语言

热点推荐