我有一个函数需要一个 unsigned long* 并且需要将它传递给一个采用 unsigned int* 的外部库,并且在这个平台上 unsigned int/long 的大小相同。
void UpdateVar(unsigned long* var) {
// this function will change the value at the address of var
ExternalLibAtomicUpdateVar((unsigned int*)var); // lib atomically updates variable
}
这会产生一个警告,说它违反了严格的别名规则。有解决办法吗?
谢谢
编辑:我很抱歉不清楚。该代码是一个原子更新,所以绕过库来存储它不是一种选择。我可以下到汇编,但我想在 C++ 中执行此操作。