• ベストアンサー

C言語のプログラムで...

下のプログラムは参考書にあったサンプルプログラムなのですが /* 関数の宣言 */ int print_struct(struct person dat); のところはなぜint型なのですか? #include <stdio.h> #include <string.h> /* 構造体の定義 */ struct person { char name[20]; /* 名前 */ double height; /* 身長 */ double weight; /* 体重 */ int bpl; /* 最低血圧 */ int bph; /* 最高血圧 */ }; /* 関数の宣言 */ int print_struct(struct person dat); /* main関数 */ int main(void) { /* 変数の宣言 */ struct person dat; /* 構造体のメンバーに値を代入 */ strcpy(dat.name,"山田太郎"); dat.height = 173.5; dat.weight = 63.0; dat.bpl = 98; dat.bph = 113; /* struct person関数を実行 */ print_struct(dat); return 0; } /* print_struct関数 */ int print_struct(struct person dat) { /* 画面に出力 */ printf("%s\n",dat.name); printf("%f\n",dat.height); printf("%f\n",dat.weight); printf("%d\n",dat.bpl); printf("%d\n",dat.bph); return 0; }

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

  • ベストアンサー
  • koedame
  • ベストアンサー率33% (10/30)
回答No.3

先の二人の回答はあってますが どうやらかなり初心者でいらっしゃる様子 えーと簡単に言うと、 /* print_struct関数 */ int print_struct(struct person dat) ↑ のintはプログラマーが返り値と呼ぶものです。 intと書いた場合その関数はint型の・・今回は return 0; と書いてあります。その数値を返さなくてはいけないのです。 このreturn 0;はreturn 1;でもreturn 2;でもかまいません。 0も1も2もint型だからです。 仮に ↓ float print_struct(struct person dat) float型にしたらfloat型を返さなくてはいけません。 return 0.0; ってな感じかな。

hotstyle
質問者

お礼

int print_struct(struct person dat) の中の『int』と return 0; の『0』にはそう言う関連があるんですね

その他の回答 (2)

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.2

「なぜint型なのですか?」といわれたら,プログラマがそれを選んだからとしか言いようがないですが. Cではintは,CPUに取って最も自然で処理効率がもっともよいデータ型です.特に他の方を選ぶ理由がなければ,intにします.

  • NNori
  • ベストアンサー率22% (377/1669)
回答No.1

まあvoidでもいいですけど、何となくでしょう。 意味はありません。 将来print_struct 関数内でエラーがあったときに -1 でも返すようにするときの拡張でも考えているのではないでしょうか。

関連するQ&A

専門家に質問してみよう