c - 确定的如果检查

标签 c if-statement

考虑函数中的这种 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/

相关文章:

r - 将两个变量组合成新变量

android - 使用 IF 语句查看启动 Activity 的 Intent - ANDROID

c - 程序中的变量是否连续存储在内存中?

c - 使用套接字 API 的基于轮询的客户端服务器

c - 调用 free() 函数时的 SIGTRAP

c - 如何将char转换为int,然后以十六进制格式显示

javascript - js中使用if语句向对象添加字段

javascript - JS 表单验证的障碍

检查子进程的状态

if-statement - 何时在 Clojure 中使用 "if"和 "when"?