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也不安全。您需要输出操作数。