ANSI C89 の範囲から外れてしまうが、音をリアルタイムに扱ったり、ゲームのちょっとした時間調整用に Sleep関数 を使ってみる。
UNIX、Linux では標準的に sleep関数 を使うのだが、Windows 上では使えないことが判明。代替として <windows.h> にある Sleep関数 を使う必要がある。注意点は単位の違い。標準は sleep(sec) だが、Windows は Sleep(msec) となっている。
windows.h Sleep を使って一時停止
#include <stdio.h>
/* Win32 API Sleep(msec)を使うために必要 */
#include <windows.h>
/* 標準sleep(sec)をWinのSleep(msec)に置き換え */
#define sleep(n) Sleep(n * 1000)
int main(void){
int i;
for(i=5; i>=0; i--){
printf("%d\n",i);
sleep(1);
}
return 0;
}
|
実行すると、5から1秒ごとにカウントダウンして、0になったら終了する。
C言語 ANSI C89 Meadow & MinGW GCC 目次