Mar*_*n85 2 c++ atomic visual-c++-6 interlocked
InterlockedExchange和之间有什么区别InterlockedExchangePointer?
是
if( 0 != InterlockedCompareExchange( ( void** ) &_myVariable
, temp
, 0
) )
Run Code Online (Sandbox Code Playgroud)
和
if( 0 != InterlockedCompareExchangePointer( ( void** ) &_myVariable
, temp
, 0
) )
Run Code Online (Sandbox Code Playgroud)
当量?
我必须将代码移植到VC6,后者不知道这些Interlocked[...]Pointer功能.
编辑:
根据我自己的经验,我知道VC6 非常多,并且没有人会再使用它了.
但是,我不是决策者,对原始问题的回答将受到高度赞赏.
InterlockedCompareExchange 采用32位变量.
InterlockedCompareExchangePointer 采用指针大小的变量,这取决于目标体系结构.
如果您的目标是32位且只有32位架构,那么它会没问题,但是每当您将目标架构更改为64位时,以下内容都会编译并表现得很糟糕:
InterlockedCompareExchange( ( LONG volatile * ) _myPointer , 1, 0 ) );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2349 次 |
| 最近记录: |