首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于宏是不是修改参数值

2013-10-02 
关于宏是否修改参数值如下代码,值value没有改变,为什么?宏不是简单的文本替换吗?#define CROL( value, bit

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

热点排行