WinAPIなしで細かい時間を取得してみる (ネタ)
現在の時間を取得しようとするとなると、
とするのが一般的かと思いますが、
unsigned int t = (unsigned int)time( NULL );
これだと一秒単位でしか取得できない。
もしも、秒単位より細かい分解能が欲しくなった場合は、
としてやれば、clockに現在のクロック数の下位32bitが入る。*1 *2
unsigned long clock = 0;_asm
{
rdtsc
mov clock, eax
}
…ので、CPUのスペックに完全に依存してしまうものの、
WinAPIなしでも秒より細かい単位の時間を得られる…(苦笑)
(実際は上記の「eax」以外にも「edx」と「QueryPerformanceFrequency()」を使えばナノ秒単位の時間を得ることが出来ます。)
……と思ったら、clock()なんていうものがあるのか…。
知らんかった(汗)
--- 追記 (08/03/04 23:18)
…コレ(clock()って)、内部的にはGetTickCount()か何かなんじゃなかろうか?
何か微妙な精度の同じような値しか出ないんですが…。