私は、暗号化方法のための何らかの種類のナノ秒レベルのタイミングを見つける方法を得ようとしています。私はstackoverflow上でこのコードを発見し、それはVS2010でコンパイルするように見えるが、私は理由を把握できない。エラーは 'time = GetCpuClocks()'で、「エラーC3861: 'GetCpuClocks':識別子が見つかりません」というメッセージが表示されます。私はstruct宣言の 'int32'型にも問題がありました。C++にこのコードが間違っていますか?
は(私は '長い' と '時間' を宣言すると推定okです?それとも、__int64されている必要があります?
事前に感謝
int _tmain(int argc, _TCHAR* argv[])
{
__int64 time;
time = GetCpuClocks();
}
inline __int64 GetCpuClocks() {
// Counter
struct { int32 low, high; } counter;
// Use RDTSC instruction to get clocks count
__asm push EAX
__asm push EDX
__asm __emit 0fh
__asm __emit 031h
// RDTSC
__asm mov counter.low, EAX
__asm mov counter.high, EDX
__asm pop EDX
__asm pop EAX
// Return result
return *(__int64 *)(&counter);
}
あなたはおそらく* GetCpuClocks(後* _tmain置く必要があります)... – kem
[OK]をみんな私が私はまずメソッドを宣言する必要があることを知った!私の唯一のqyestionなぜそのような大きな数のint32を使用しているのですか?私の価値観の中には、-xxxxxxxxxというものがあります。これは、全体を通して64ビットの数字を使うべきであるという意味ですか? – Jason
'nanosecond-level timing'あなたはそれを見つけられません。あまりにも多くの変数があります。その関数は本当に速い時間を得ますが、時間を計るためのものではありません。 – Falmarri