_builtin_cpu_可以被欺骗检查数组吗?

时间:2014-04-30 18:35:06

标签: c++ gcc built-in

我想编写一个显示当前CPU上所有CPU选项的程序。 像这样的个人电话工作:

if (__builtin_cpu_is("intel"))

相反,我更愿意声明一个数组:

const char* cpuType[] = {
  "intel", "atom", "core2", "corei7", "nehalem",
  "westmere", "sandybridge", "amd", "amdfam10h", "barcelona", 
  "shanghai", "istanbul", "btver1", "amdfam15h",
  "bdver1", "bdver2", "bdver3", "bdver4", "btver2"
}

并在循环中检查相同的事情:

for (int i = 0; i < sizeof(cputype)/sizeof(char*); i++)
  if (__builtin_cpu_is(cpuType[i])

gcc拒绝,说它必须是一个常量字符串。

除了一遍又一遍地编写代码之外,还有什么方法可以完成这项工作吗?

0 个答案:

没有答案