自作関数のなかに自作関数を格納する 自作関数の2重入れ子 その1
ソーラー「今度は自作関数の中に自作関数を
格納してみま~す。
先程は 文章のみを表現する自作関数Sentense をつくったよね。
それをつかってみよう。
まずは 次のプログラムをみてよ」
#include <stdio.h>
void Sentense1 (void){
printf("おはようございます\n");
return;
}
void Sentense2 (void){
printf("こんにちは\n");
return;
}
void Sentense3 (void){
printf("こんばんは\n");
return;
}
int main(void){
Sentense1 ();
Sentense2 ();
Sentense3 ();
return 0;
}
コンパイル結果
おはようございます
こんにちは
こんばんは
アレサ「綺麗に自作関数
Sentense1 ();
Sentense2 ();
Sentense3 ();
がならんでいますの。
main関数内で使用されるとき
Sentense1 ();
Sentense2 ();
Sentense3 ();
のように記述される自作関数
Sentense1
Sentense2
Sentense3
は
引数内に変数を持たないタイプでしたね。」
ソーラー「これを 自作関数Sentense3 の中に
自作関数Sentense1,Sentense2 を格納して
まとめると
#include <stdio.h>
void Sentense1 (void){
printf("おはようございます\n");
return;
}
void Sentense2 (void){
printf("こんにちは\n");
return;
}
void Sentense3 (void){
Sentense1 ();
Sentense2 ();
printf("こんばんは\n");
return;
}
int main(void){
Sentense3 ();
return 0;
}
コンパイル結果
おはようございます
こんにちは
こんばんは
ソーラー
「 っと こんな具合に
Sentense3 ();
と1行 記述するだけで
おはようございます
こんにちは
こんばんは
がprintf表示できるようになるんだ。
このプログラムの流れは
まず
自作関数Sentense1
自作関数Sentense2
を定義して作製し
そうして作製された自作関数
Sentense1
Sentense2
を
このように自作関数Sentense3の定義に取り込んで
⇩
void Sentense3 (void){
Sentense1 ();
Sentense2 ();
printf("こんばんは\n");
return;
}
自作関数Sentense3を作製しています
普通の関数とおなじように
自作関数
Sentense1
Sentense2 を
自作関数Sentense3 にとりこんじゃったってわけさ(^o^)/
自作関数
Sentense1
Sentense2
を定義して作製してからでないと
自作関数Sentense3 にとりこむことはできないので
自作関数
Sentense1
と
Sentense2
の定義
void Sentense1 (void){
printf("おはようございます\n");
return;
}
と
void Sentense2 (void){
printf("こんにちは\n");
return;
}
を
void Sentense3 (void){
Sentense1 ();
Sentense2 ();
printf("こんばんは\n");
return;
}
の前に 記述するようにしてください。
こんな具合に さきに
void Sentense3 (void){
Sentense1 ();
Sentense2 ();
printf("こんばんは\n");
return;
}
を記述してしまうと
⇩
#include <stdio.h>
void Sentense3 (void){
Sentense1 ();
Sentense2 ();
printf("こんばんは\n");
return;
}
void Sentense1 (void){
printf("おはようございます\n");
return;
}
void Sentense2 (void){
printf("こんにちは\n");
return;
}
int main(void){
Sentense3 ();
return 0;
}
コンパイル結果
ファイル「C:/Users/solarplexuss/AppData/Local/EasyIDEC/project/iii/main.c」の
「10行目」で記述エラーを発見しました。
「Sentense1」が再定義されています。以前と同じ名前を使っていないか、関数の記述順番は正しいかどうかを確認してください。
とコンパイルエラーが出てきます」
」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます