• ベストアンサー

timeの引数と戻り値

http://www.microsoft.com/JAPAN/developer/library/vccore/_crt_time.htm 上記サイトで、少しスクロールを下げると、解説のことろで、 引数は NULL でもかまいませんと書かれています。 引数を NULL にして使うのはどういった場合の時ですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • toysmith
  • ベストアンサー率37% (570/1525)
回答No.3

「NULLでもかまわない」というよりは「NULLでない場合は引数であらわされる領域【にも】値が設定される」という解釈の方が使いやすいでしょう。 1. 純粋に時間を取得したいだけのとき time_t t ; t = time(NULL) ; 2. 時間を取得しながら何か処理を行いたいとき time_t t1, t2 ; t1 = time(NULL) ; while((time(&t2) - t1) < 10) { //時間待ち } //t2を使う何らかの処理 通常、time()を使う時って1のパターンです。 「2のような使い方もできる」という程度の認識でいいのではないでしょうか。

iufansu
質問者

お礼

2の有効な利用法がとても参考になりました。 ありがとうございました。

その他の回答 (2)

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.2

そのサイトに、 「この引数は NULL でもかまいませんが、その場合は戻り値は格納されません」 と書かれていますね。 戻り値を取得しない場合ということですが、何が理解しにくいですか?

iufansu
質問者

補足

Delete("MovingWalk");

  • madman
  • ベストアンサー率24% (612/2465)
回答No.1

変数に代入する必要が無い場合、NULLを指定します。 戻り値がtime_tでエラーが無いことに着目してください。 printf("%d\n", time(NULL)); とか使ったりします。

iufansu
質問者

お礼

ありがとうござます。 引数をNULLにすると戻り値を使えなくなってしまうかもしれないと心配してしまいた。

関連するQ&A