Chinaunix
标题:
请教InterlockedExchange在64位下写法
[打印本页]
作者:
zhongfangqing
时间:
2013-07-31 10:35
标题:
请教InterlockedExchange在64位下写法
因为long型在32位环境下是四字节,所以下面函数在32位下可以编过,但在64下long长度变化,编译出错。
报错提示“Incorrect register '%rax' used with 'l' suffix”
inline long InterlockedExchange(long* volatile Target, long Value)
{
long ReturnValue;
__asm __volatile(
"lock xchgl %2,(%1)"
: "=r" (ReturnValue)
: "r" (Target), "0" (Value)
: "memory");
return ReturnValue;
}
请教该函数在64位下写法,谢谢!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2