- ベストアンサー
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; }
- みんなの回答 (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; ってな感じかな。
お礼
int print_struct(struct person dat) の中の『int』と return 0; の『0』にはそう言う関連があるんですね