構造体をRPGのステータスで考える

 今回から、ポインタと並んでC言語で重要かつ難しい概念である構造体について説明していきたいと思います。以前time()関数の説明で、

time_t nowDtm;
nowDtm = time(NULL);
printf("年:%d\n", localtime(&nowDtm)->tm_year + 1900);
printf("月:%d\n", localtime(&nowDtm)->tm_mon + 1);
printf("日:%d\n", localtime(&nowDtm)->tm_mday);
printf("時:%d\n", localtime(&nowDtm)->tm_hour);
printf("分:%d\n", localtime(&nowDtm)->tm_min);
printf("秒:%d\n", localtime(&nowDtm)->tm_sec);
(抜粋)

 time_t型の変数をご紹介しました。このtime_t型も構造体です。構造体は、関連する変数を「ひとまとめ」にして、(人間の目から見て)わかりやすく処理しやすいようにしたものです。time_tの構造体の場合(上記で言えばnowDtmの中に)、

  • tm_year:年
  • tm_mon:月
  • tm_day:日
  • tm_hour:時
  • tm_min:分
  • tm_sec:秒

 などの、意味をもった変数が「ひとまとめ」に格納されています。

 もう少しわかりやすい例として、テレビゲームのRPGで考えてみます。大体のRPGで、ゲームの中に登場する味方キャラクターは、以下のようなステータスを持っています。

  • 名前
  • 職業
  • レベル
  • HP
  • MP
  • 力の強さ
  • 等々...

 ゲーム中でも「つよさ」などのメニューから確認できる項目です。C言語のプログラミングで、これらの値を管理したい場合、構造体を使うと便利です。次回以降、もう少し詳しく見ていきましょう。

■スポンサーリンク

このページの先頭へ