C++ 使用“rdtsc”:错误C2065

C++ 使用“rdtsc”:错误C2065,c++,windows,visual-studio,inline-assembly,C++,Windows,Visual Studio,Inline Assembly,我试图生成随机数,但是用这个种子 int rdtsc() { __asm__ __volatile__("rdtsc"); } 但是,当我尝试编译时,会出现以下错误: error C2065: '__asm__' : identificador no declarado error C2146: error de sintaxis : falta ';' delante del identificador '__volatile__' 我该怎么办?是否有另一种方法生

我试图生成随机数,但是用这个种子

int rdtsc()         
{
    __asm__ __volatile__("rdtsc");
}
但是,当我尝试编译时,会出现以下错误:

error C2065: '__asm__' : identificador no declarado
error C2146: error de sintaxis : falta ';' delante del identificador '__volatile__'

我该怎么办?是否有另一种方法生成真随机数,而不是通过<代码>时间(null)< /COD>?< /P> < P> 64位Visual C++版本不支持内联汇编,但它提供了大多数特殊指令的内置函数,

所以不需要自己编写代码


即使您使用的是32位编译器,汇编语法也不是

__asm__ __volatile__("rdtsc");
但只是

__asm rdtsc

Visual C++的64位版本不支持内联汇编,但它提供了大多数特殊指令的内置函数,

所以不需要自己编写代码


即使您使用的是32位编译器,汇编语法也不是

__asm__ __volatile__("rdtsc");
但只是

__asm rdtsc

我希望您尝试在x64版本中使用内联程序集,VisualStudio不支持该版本(出于未知原因)。请注意,您无法生成“真”随机数(没有一些硬件支持)-您只能生成伪随机数。请使用random_device或msdn.microsoft.com上的lookup rand_s。这是gcc语法。如果您使用visual studio,则它是`\u asm rdtsc`请不要使用
random
标记,
rdtsc
与随机性无关。即使使用可以编译asm的编译器(gcc/clang/ICC),该asm也不安全。您需要输出操作数。我希望您尝试在x64版本中使用内联程序集,Visual Studio不支持该版本(出于未知原因)。请注意,您无法生成“真”随机数(没有一些硬件支持)-您只能生成伪随机数。请使用random_device或msdn.microsoft.com上的lookup rand_s。这是gcc语法。如果您使用visual studio,则它是`\u asm rdtsc`请不要使用
random
标记,
rdtsc
与随机性无关。即使使用可以编译asm的编译器(gcc/clang/ICC),该asm也不安全。您需要输出操作数。