我正在尝试获得一个打印出 CPU 名称/供应商的函数,但是当我尝试它时,我最终得到了“GenuntellineI”。
这是功能:
void PrintProcessingDeviceType()
{
uint32_t regs[4];
#ifdef _WIN32
__cpuid((int*)regs, 0);
#else
asm volatile ("cpuid" : "=a" (regs[0]), "=b" (regs[1]), "=c" (regs[2]), "=d" (regs[3]) : "a" (0), "c" (0));
#endif
std::cout << std::string((const char*)®s, 16) << std::endl;
}
两种路径(定义了 _WIN32 和未定义的路径)都会导致发生此错误。这是 CPUID 不正确的问题,是我做错了什么,还是什么?