考虑函数中的这种 if 语句:
int Foo( void )
{
if ( HostCPUInfo::IsSSE3Supported() )
// SSE3 intrinsic
else
// C code
}
我在运行时检查主机 CPU 是否支持 SSE3 指令以允许使用更快的内部指令。但是,由于我怀疑 HostCPUInfo::IsSSE3Supported() 的返回值会在我的程序生命周期内发生变化,有没有办法只进行一次此类检查(可能在初始化期间)?
最佳答案
这是使用函数指针的一种方式:
int (*foo)() = synthetic_foo;
void init() {
if (HostCPUInfo::IsSSE3Supported()) {
foo = sse3_foo;
}
}
关于c - 确定的如果检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28566281/