■関数の定義の仕方
第1回でサラっと流しておいてなんだが、今さら関数の定義の仕方を簡単に説明する。
教科書通りのベタな内容で特にたいしたことは解説しない。
既知ならサラっと読み流してくれていい。
次回が本題
#include <stdio.h>
#include <iostream>
// プロトタイプ宣言
int 三角形の面積(int 底辺, int 高さ);
int main()
{
printf("三角形の面積①は%dです\n", 三角形の面積(3, 4));
int ていへん, たかさ;
std::cout << "テイヘンを入力してください" << std::endl;
std::cin >> ていへん; // ※ユーザー入力を受け付ける
std::cout << "タカサを入力してください" << std::endl;
std::cin >> たかさ; // ※ユーザー入力を受け付ける
std::cout << "三角形の面積②は" << 三角形の面積(ていへん, たかさ) << "です" << std::endl;
system("pause");
}
// 関数定義
int 三角形の面積(int 底辺, int 高さ)
{
int 答え = 底辺 * 高さ / 2;
return 答え;
}
※printfやcin、coutについては詳しく解説しない。ググるか入門書を見ればすぐにみつかるし、読めばなんとなくわかるように書いた。
■プロトタイプ宣言
こんな関数がありますよ!という宣言。関数のカタログ的なものになる。
本当は宣言せずにいきなり定義を書いてもいいのだが、色々と面倒な問題があるので必須だと思って差し支えない。
(何が問題かは面倒なので、今は解説しない)
本当は
int 三角形の面積(int, int);
と、引数の型だけでもいいのだが、筆者の趣味で必ず『仮引数名』を入れている
int 三角形の面積(int 底辺, int 高さ) ;
※お尻のセミコロン「 ; 」を忘れないこと
■関数定義
その関数がどんな動作をするのか具体的に書く。
『仮引数名』(例では、「底辺」 と 「高さ」)は必須
{ }内に中身の処理を書く。
※( )や{ }の後ろにセミコロンは要らない
■仮引数名について第1回の補足
実際の処理を書くための仮の名前
第1回では
// 定数
const int 窓横幅 = 640;
と
// 関数のプロトタイプ宣言
int ライブラリ初期化(bool ウィンドウモード, int 窓横幅, int 窓縦幅);
が
偶然同じ名前になってしまっていますが、
たまたま同じであることに注意してください。
※決して「ライブラリ初期化関数が 窓横幅 しか受け付けない」わけではないです!
if(ライブラリ初期化(true, 窓横幅, 窓縦幅) == -1) { return -1;}
を
if(ライブラリ初期化(true, 500, 窓縦幅) == -1) { return -1;}
などと任意の数字や変数に変えても、もちろん動作します。
if(ライブラリ初期化(true, 窓縦幅, 窓横幅) == -1) { return -1;}
などと逆に書けば、
if(ライブラリ初期化(true, 480, 640) == -1) { return -1;}
と書いたことと同じになり、縦長のウィンドウのゲームが立ち上がります