自作関数を導入してみます 自分で関数を作製して使用することができます その方法はどうなってるのかな?
自作関数1 ソーラーといっしょに関数を自作してみましょう void newmadefunction(void) 0.1
しばらく芝生の上で遊んでいた新種の蛇 scanf。
ソーラーがお家に戻ってきたようです。
新種の蛇 scanf「く~~~ん、く~~ん」
ソーラーの左腕にまきついてみる。
ソーラー「scanf♪♪ 今日も元気にあそんでいたかな?」
新種の蛇 scanf
「ソーラー また新しいC言語情報をみつけたの~?」
ソーラー 「ふふふ、今日は大漁だよ、らっしゃい♬」
持ってきた包みを机の上に広げるソーラー。
アレサ 「まあ、今日は何をみつけられたのですか?」
ソーラー 「今日はこれ、珍しい・・・、
なんだろっっこれっ?シーラカンスかな。」
包みのなかからごろんと
void newmadefunction(void)
があらわれる。
アレサ「まあ、これは・・・なんですの・・・」
新種の蛇 「これは・・・深海魚かな?」
ソーラー 「いやっ(^^)
そこの芝生の上で転がっていたんだけど・・・」
☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆ ☆
ソーラー精密工業です。
ぴしゅ~~~ん、しゅるるるるるんんん
ただいま
void newmadefunction(void)を解体中です。
どうやら newmadefunctionのシステムがわかってきました。
これは~~大快挙です、うおおおおおおっ
アレサ 「何されてるんですの・・・」
ソーラー 「い、いや・・・ひとり、ひたすらボケ,ツッコミなしを・・・」
アレサ 「・・・それにしても立派な大きなお魚ですね」
しばしvoid newmadefunction(void)をふたりでみつめる。
アレサ 「なんだかがっしりした感じをうけますね。」
ソーラー 「 newmadefunctionのシステムはめっちゃ簡単でした・・・というか
この newmadefunctionのエンブレムを御覧になられても
おわかりになられますように
newmadefunction(新しくつくられた関数)
つまりこの
newmadefunctionはもとから標準Cライブラリにある関数ではなく
新たに自分達の手で作り出された関数なのです。」
アレサ「完全にソーラー精密工業の社員さんになってます。(^^)
ソーラーさん」
ソーラー 「えへへ・・・」
アレサ「それにしても
関数を自分でつくりだす・・・ですか・・・」
ソーラー「そうなんだよ。すごい仕組みでしょう。」
アレサ 「とても面白そうですね。」
ソーラー 「void newmadefunction(void)と
関数によくみられる()(👈引数が代入される部分ですね)
つまり
(void)がついてることから
newmadefunctionは関数じゃないかな~っとは
思ってたんだけど・・・」
アレサ 「void newmadefunction(void)
で
voidが2つあるのはなぜですの?」
ソーラー 「1つは保存用で1つは観賞用です。」
アレサ 「010101010・・はぁ・・・わかりません・・・」
ソーラー「とりあえず、この芝生の上に落ちていた
void newmadefunction(void)を再生させてみます。」
ぱしゅん、ぱしゅん、ぱしゅん、
とんとんとん、じゅう、じゅう、ぐつ、ぐつ
アレサ 「・・・なんだか・・・・・・
いい香りがしてきました。」
新種の蛇 scanf
「なに、なに、なにつくってるの・・・きゅるるる」
ソーラー「はい、ソーラー精密工業です。
いっちょうあがり~~~
中身をつめてvoid newmadefunction(void)を再使用可能にしました。」
アレサ 「ソーラー精密工業・・・」
ソーラー「さあ、リバースエンジニアリングによってよみがえった
void newmadefunction(void)を
プログラムのなかで実際に使い
void newmadefunction(void)の性質をみていきましょう。
そのプログラムはこちらです
👇
#include <stdio.h>
void newmadefunction(void){
printf("今日もよいC言語日和です。\n");
return ;
}
int main (void){
newmadefunction();
return 0;
}
プログラムの実行結果
今日もよいC言語日和です。
アレサ「くすくすっ♪・・
今日もよいC言語日和です。・・か・・・
くす、くすっ」
ソーラー 「そう、ここは万年C言語の楽園さ」
アレサ 「コマンドプロンプト画面に
今日もよいC言語日和です。って表示されてるのが
じっとみてると可笑しくて、可笑しくて・・・
ソーラーさんらしいですね。ふ、ふ、ふ♪」
ソーラー 「そう、そして、ここで注目すべきはっ」
アレサ 「注目すべきは・・・」
ソーラー 「このシステムがヴェリぃ eazy
なところなんです。」
アレサ 「とても簡単なんですの・・・」
ソーラー 「はい、まずmain関数の
int main (void){ }がはじまる前に
自分でつくった関数newmadefunctionを次のように
void newmadefunction(void){
printf("今日もよいC言語日和です。\n");
return;
}
掲げるんです。
ここでnewmadefunctionは
関数名なのですが
関数名はsolarでもnewprintfでも半角英数字なら
自分の好きなように名前をつけてかまいません。
この新しくつくられた関数newmadefunctionは
void newmadefunction(void){ }のブロック{ }の中の命令文
printf("今日もよいC言語日和です。\n");
そのものです。
これで 新しくnewmadefunction関数をつくることができました。
そして main関数の中で
int main (void){
newmadefunction();
return 0;
}
のように
newmadefunction();と記述するだけで
printf("今日もよいC言語日和です。\n");
が
実行されることになります
直接
printf("今日もよいC言語日和です。\n");と
かかなくてもよくなるんですよ。
例えば次のプログラムのように👉」
#include <stdio.h>
int main (void){
printf("今日もよいC言語日和です。\n");
printf("今日もよいC言語日和です。\n");
printf("今日もよいC言語日和です。\n");
printf("今日もよいC言語日和です。\n");
printf("今日もよいC言語日和です。\n");
return 0;
}
プログラムの実行結果
今日もよいC言語日和です。
今日もよいC言語日和です。
今日もよいC言語日和です。
今日もよいC言語日和です。
今日もよいC言語日和です。
ソーラー「👉
命令文
printf("今日もよいC言語日和です。\n");を
5回記述しなくても
次のように関数を自作し
void newmadefunction(void){
printf("今日もよいC言語日和です。\n");
return;
}
プログラム内で
#include <stdio.h>
void newmadefunction(void){
printf("今日もよいC言語日和です。\n");
return;
}
int main (void){
newmadefunction();
newmadefunction();
newmadefunction();
newmadefunction();
newmadefunction();
return 0;
}
プログラムの実行結果
今日もよいC言語日和です。
今日もよいC言語日和です。
今日もよいC言語日和です。
今日もよいC言語日和です。
今日もよいC言語日和です。
ソーラー「👉
printf("今日もよいC言語日和です。\n");の部分を
newmadefunction();で置き換えてやるだけで
printf("今日もよいC言語日和です。\n");を
実行できるようになります。
ここで
5回
printf("今日もよいC言語日和です。\n");
を繰り返すだけなら
for文をつかえばいいじゃないかというツッコミは
ただいま受け付けておりません。」
新種の蛇 scanf
「ぴぴぴっ 僕はいつでも入力受け付けてるよ~~~」
ソーラー「
自作関数newmadefunctionの定義において
void newmadefunction(void){
printf("今日もよいC言語日和です。\n");
printf("明日はもっともっとよいC言語日和です。\n");
printf("明後日はもっともっともっともっともっと
ウルトラハッピーラッピーマッピーよいC言語日和です。\n");
return;
}
のように自作関数newmadefunctionの中に命令文を何個いれても構いません。
試しに プログラムの中に組み込んで実行してみましょう。」
アレサ 「あっそれ私、・・・やってみたいです。」
ソーラー 「そう、やってみる?」
アレサ「ええっプログラムをこう、
#include <stdio.h>
void newmadefunction(void) {
printf("今日もよいC言語日和です。\n");
printf("明日はもっともっとよいC言語日和です。\n");
printf("明後日はもっともっともっともっともっとよいC言語日和です。\n");
return;
}
int main(void) {
newmadefunction();
return 0;
}
そしてコンパイ........
ソーラー「アレサっっ もっとこう、びしばし、うちこむんだ!!
printf("明後日はもっともっともっともっともっと
ウルトラハッピーラッピーマッピーよいC言語日和です。
だよっっ
」
アレサ 「はっ・・・はいっ
で、では打ち直してコンパイルっ」
プログラムの実行結果
今日もよいC言語日和です。
明日はもっともっとよいC言語日和です。
明後日はもっともっともっともっともっと
ウルトラハッピーラッピーマッピーよいC言語日和です。
アレサ「ふ、ふふ・・・かわいらしい・・・
とても硬い感じのするコマンドプロンプト画面に
うかびあがるような文字とは思えないです・・」
ソーラー 「そう、それが、それが萌えなんです。」
アレサ「ところで ソーラーさん、芝生に落ちていた
void newmadefunction(void)ですが・・・」
ソーラー「なんだい、アレサ?」
アレサ「この自作関数void newmadefunction(void){}がつくられたということは
ブロック{}の中に何かの関数がはいっていたはずです。
いったい、それはどこにいったのでしょう。?」
ソーラー 「そういえば・・・そうだね?
中身はどこにいったのかな?」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます