C 基本講座

関数の基本を理解する

LinkedInラーニングの無料トライアルを今すぐ試そう

無料で視聴する すべての加入プランを見る
このレッスンでは、関数とはどういうものであるかを簡単に説明します。
講師:
08:47

字幕

このレッスンでは、関数とはどういうものかを簡単に説明します。関数とは、ある特定の機能を実行するプログラムの処理単位です。プログラムは C 言語に限らずいずれもいくつかのパーツに分けて作成されています。C 言語ではそのパーツを関数と呼びC 言語のプログラムは、関数が集まって構成されています。C 言語のプログラムは main 関数に処理系が用意したライブラリ関数とプログラマーが作成したユーザー関数をリンクし実行形式を作成します。C 言語ではプログラムはmain 関数から実行され次々に他の関数を呼び出します。C 言語では main 関数を頂点にして一筆書きのように処理が実行されていきます。この図で説明してみましょう。まず、main 関数が呼び出され先頭の行から順に処理が行われます。途中で関数 A が呼び出されると処理の流れは関数 A へ移ります。その際、関数に渡す値があれば引数として関数に渡されます。次に関数 A 内で処理が行われます。途中で関数 B が呼び出されると処理の流れは関数 B に移ります。関数 B で処理が行われ、終わると再び呼び出し元に戻ります。その際、関数 B からの返却値があれば返されます。 そして関数 A の残りの処理を実行しmain 関数に戻ります。main 関数では更に関数 C を呼ぶので処理は関数 C へ移ります。関数 C の処理を実行すると再び main 関数へ戻りmain 関数も終了するとプログラムは終了します。関数に分けることで機能が限定されるので分かりやすいプログラムを作成することができプログラムのテストや修正も関数単位で行えばよいので生産効率が上がります。また、複数のプログラマーによる分業も可能になります。同じような処理を関数にまとめプログラム間で使いまわせばプログラムが短くなり更に生産性が上がります。では、簡単なプログラムをmain 関数から呼び出して処理を確認してみましょう。この 21 行目から 31 行目までがmaxof 関数です。整数値を2つ受け取り大きな方を返却します。実行してみましょう。このように、「大きな数は 11 です。」と表示します。では、図を使って関数定義について説明してみます。関数定義とは実際に関数を記述している部分ですがこのような構成をしています。関数名は関数の名前です。変数名と同じように識別子なのでその名付け方には変数名と同じルールが適用されます。 関数に引き渡す数を引数と呼びますが関数が受け取る引数を仮引数と呼びます。それに対し、関数に渡す引数を実引数と呼びます。関数定義の先頭で ( ) の中に引数型と仮引数を記述します。何個書いても構いませんし渡す値が無ければ、書かなくても構いません。この例では、この n1 と n2 が仮引数で10 と 11 が実引数です。この返却値型は return 文で返却する値のデータ型を記述します。この例では int 型の r を返却するのでint と書かれています。関数本体では、関数で行う処理を記述します。この時、関数内で宣言された変数や配列は関数内でしか使用できません。ですから、main 関数で宣言された max をmaxof 関数の中で使用することはできません。反対に、maxof 関数内で宣言された r と仮引数の n1 と n2 をmain 関数で使用することもできません。関数に値を渡すには引数を使用しそして、関数から値を戻すにはreturn で返却します。この例では2つの整数値を引数で受け取り大きい方の数をreturn で返却しています。関数を呼び出さないと処理を実行できません。この例では main 関数でmaxof 関数を呼び出しています。 呼び出す時に、実引数として10 と 11 を渡しています。すると、この 10 は n1 に、11 は n2 に渡されます。maxof 関数ではこの n1 と n2 を比較し大きな方を r に代入しその r を return で返却します。返却された値は、maxof のこの部分に返されてくるのでそのまま、それを max に代入しています。さて、9行目ですがこれはプロトタイプ宣言と呼ばれます。プロトタイプ宣言を記述するとコンパイル時に関数の呼び出しと定義が異なる場合にはエラーを出力します。プロトタイプ宣言は関数定義の先頭部にセミコロンが付いているだけですね。ところで、関数には引数や返却値の無いものも存在します。もし関数に渡す値が無い場合には引数は必要ないので ( ) の中にはvoid と書きます。返却する値が無い場合にも返却値には void と書きます。引数だけが無い、返却値だけが無い、関数も存在しその場合には、片方だけvoid と書きます。返却値の無い関数ではreturn の後ろに何も書きません。けれども、この return を書かなくても波カッコの閉じで呼び出し元に戻るので普通はこの return は書きません。 但し、if 文などを使って途中で強制的に戻る場合にはこのように返却値なしの return を書きます。呼び出す方は、このように実引数には何も記述しません。プロトタイプ宣言も必要ですね。この部分をコピーしてプロトタイプ宣言として貼り付けておきます。セミコロンを忘れないでください。実行してみましょう。このように、引数と仮引数のない関数が呼ばれました。このレッスンでは、関数とはどういうものかを簡単に説明しました。

C 基本講座

C言語はUNIXというOSを記述するために開発されたプログラミング言語で、組み込みシステムの開発を中心に今も使われています。このコースでは簡単なプログラムを作成しながら、C言語の基本的な文法を学びます。データ型や制御文などの基礎的な文法からポインタや構造体といったC言語の特徴的な内容まで幅広く取り上げます。よく使われる標準ライブラリ関数も数多く紹介します。

5時間45分 (60 ビデオ)
現在、カスタマーレビューはありません…
ソフトウェア・トピック
プラン加入者限定
発売日:2017年11月05日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。