__get_cpuid 的可移植性如何?

Posted

技术标签:

【中文标题】__get_cpuid 的可移植性如何?【英文标题】:How portable is __get_cpuid? 【发布时间】:2011-12-06 21:20:12 【问题描述】:

我正在使用__get_cpuid() 来获取有关我的程序运行的x86x86_64 处理器的信息。使用 Linux 和 Mac OS 上的 GCC,它似乎可以在不包含任何头文件的情况下编译和运行,但它的可移植性如何?它可以与其他编译器一起使用吗?我应该为此添加一个标题吗?

【问题讨论】:

无论如何你都应该包含它。在 C99 中调用没有已知原型的函数是非法的。 @WTP:作为内置函数,它不需要原型。没有要包含的头文件。 C99 标准不适用,因为它是一种语言扩展。 @Dietrich Epp 糟糕,我不知道这是语言扩展。问题中没有提到这一点。 【参考方案1】:

它有两个前导下划线。任何前导下划线都暗示该变量或函数不可移植。

【讨论】:

是否有可以检测 CPU 特性的可移植 C 代码(作为模板库更好)?即时是否支持 AVX。

以上是关于__get_cpuid 的可移植性如何?的主要内容,如果未能解决你的问题,请参考以下文章

可移植地识别非标准 C++?

在 C++ 中实现无操作语句的可移植方式是啥?

STL typedef 的可移植性如何?

使用 wmemset() 的代码的可移植性如何?

库如何实现不同操作系统之间的可移植性

如何以最小的依赖性和最大的可移植性为单个 HTML 页面添加一点点活力?