我有以下这种情况。
volatile double val1 = 10.0;
volatile double val2 = 20.0;
double SetValues(double d1, double d2)
{
double ret = d1-d2;
InterlockedExchange64( (volatile long long*)&val1, *((long long*)&d1) ); // val1 = d1;
InterlockedExchange64( (volatile long long*)&val2, *((long long*)&d2) ); // val2 = d2;
return val1 - va2;
}
我的问题是,CPU 或编译器是否有可能重新排序SetValues()
函数行?