![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
下のプログラムは参考書にあったサンプルプログラムなのですが
/* 関数の宣言 */
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;
}
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;
ってな感じかな。
int print_struct(struct person dat)
の中の『int』と
return 0;
の『0』にはそう言う関連があるんですね
No.2
- 回答日時:
「なぜint型なのですか?」といわれたら,プログラマがそれを選んだからとしか言いようがないですが.
Cではintは,CPUに取って最も自然で処理効率がもっともよいデータ型です.特に他の方を選ぶ理由がなければ,intにします.
No.1
- 回答日時:
まあvoidでもいいですけど、何となくでしょう。
意味はありません。 将来print_struct 関数内でエラーがあったときに -1 でも返すようにするときの拡張でも考えているのではないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- C言語・C++・C# 未解決の外部シンボル _printfが関数_mainで参照されました 1 2022/09/18 15:28
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
C++のfor文について
-
フィボナッチ数列 c言語
-
Arduinoのプログラムについて
-
構造体の通用範囲の広げ方
-
DLLのLPSTR 項目の戻り値の取得...
-
【C++】typedefの役割について
-
VB 関数
-
構造体のvectorを引数として関...
-
LNK2019: 未解決の外部シンボル...
-
変数の型を定義しなかった場合...
-
int *a = new int; エラー
-
void func( void )について
-
C++,ヘッダファイルのエラー
-
C言語のコンパイル後のエラ-
-
2重定義って??
-
数学 数直線の見方
-
10進数からN進数に変換するプロ...
-
2÷3などの余りについて
-
「Aに対するBの割合」と「Aに対...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
long型の定数の末尾にLを付ける...
-
2重定義って??
-
visualstudio C# テキストボッ...
-
C++のfor文について
-
構造体の要素すべてに対する四...
-
typedef enumの使い方を教えて...
-
変数の型を定義しなかった場合...
-
関数の実体定義にヘッダファイ...
-
ハンドルされていない例外が発...
-
intとINTの違いは?
-
C++でboolにintの値を代入する...
-
【#define】 defineで定義した...
-
構造体の宣言でエラーが出ます。
-
プログラムの中で別のmainを呼...
-
main.c:7:43: warning: implici...
-
void func( void )について
-
エラー「invalid conversion fr...
-
C言語 宣言した変数になにも代...
-
0除算を判定したい
おすすめ情報