自作関数を導入してみます 自分で関数を作製して使用することができます その方法はどうなってるのかな?

自作関数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){}がつくられたということは


ブロック{}の中に何かの関数がはいっていたはずです。


いったい、それはどこにいったのでしょう。?」


ソーラー 「そういえば・・・そうだね?


中身はどこにいったのかな?」












  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る