機能
-
基本的に言えば、関数は特定の機能を完了するために使用されます。
-
関数は関数であり、各機能は、特定の機能を達成するために使用され、関数名は、その代表者の特性を反映すべきです。
-
プログラミング機能でリピートプログラミング・セグメントの負荷を軽減するために、有効に利用することにします。
-
すべての関数、すなわち、関数がそれぞれ定義されている場合、平行であり、互いに独立しています。
-
関数がお互いを呼び出すことができますが、主な機能を呼び出すことはできませんとの間で、主な機能は、オペレーティングシステムによって呼び出されます。
ユーザーの視点を参照してください、2つの機能があります。
-
システムが提供するライブラリ関数
-
特別なニーズに対応するためのユーザー定義関数、ユーザー関数
システムによって提供されるCコンパイラライブラリ関数のために、単にヘッダモジュールが含ま#は、このファイルに関連する命令を含む使用、コンパイラシステムによって事前に定義されています。
定義された関数
すべての機能は、「使用後に、定義する」必要があります
定義された機能は以下の要素を含める必要があります。
-
関数の名前を指定します。
-
これはすなわち、関数は、値のタイプを返し、関数のタイプを指定します
-
パラメータ名および指定された機能の種類
-
機能機能
メソッド定義された関数
1、無定義された関数パラメータ
()関数名の名前を入力しない { 関数本体 } または タイプ名関数名(ボイド) { 関数本体 } 関数は、本体部と宣言文部備える はパラメータ、すなわち、発現空隙を
図2に示すように、関数のパラメータが定義されています
関数名の名前を入力(パラメータリストカラム形) { 関数本体 } 例: INT MAX(int型のX、YのINT) { int型のZ; Z = X> Y X:Y ;? 復路(Z); }
3、空の関数の定義
関数名の名前を入力() { } 例えば: ボイドダミー() { }
通話機能
まず、関数呼び出しフォーム
関数名(引数がリストされています)
パラメータのうち、複数の引数を含む引数表の列は、コンマで区切られている場合。
プログラムにおける関数呼び出しの形及び位置は、次の3種類に分けているように見えます。
-
関数呼び出し文
例えば、単一の文としての関数呼び出し、:printf_star();
-
関数式
関数呼び出しは、たとえば、別の表現で表示されます:
C = MAX(A、B)。
-
関数の引数
例えばとして別の関数を呼び出す関数呼び出しの引数、:
M =最大(MAX(A、B))。
第二に、データ転送時に関数呼び出し
-
仮パラメータと実パラメータ
関数呼び出しにパラメータがある場合は、呼び出し元の関数とデータ転送機能の関係の間に呼び出しがあります。
関数を定義する場合、変数の後ろに括弧内の関数名が呼ばれる:「仮パラメータ」(パラメータとも呼ばれる)、または「仮想関数を。」
関数が呼び出す関数内で呼び出されると、パラメータを以下の括弧内の関数の名前を呼ばれています。「実際のパラメータ」(引数)、実際のパラメータは、定数、変数または式です。
-
引数とパラメータの間のデータ転送
関数呼び出しの過程では、システムの引数の値は、呼び出された関数のパラメータに渡されます。若しくは
値は、パラメータ引数から取得しました。
関数呼び出しが呼ばれるとの間のデータ転送に参加して、実際のパラメータの間に発生する:「実際の状況」
-
関数で、関数の戻り値はreturn文を取得します
Zを返すとリターン(z)は、と等価です
-
そうでない場合は、式の関数値の値の型とreturn文、機能場所のサブジェクト・タイプ、関数の型は、戻り値の型であると判断。
-
機能ではないバック値については、それが機能「void型」(またはvoid型)が定義されなければなりません
第三に、呼び出された関数の宣言と関数プロトタイプへ
関数内の別の関数(すなわち、関数呼び出し)を呼び出すと、次のものが必要です。
-
まず、関数は必見すでに定義された関数(ライブラリ関数またはユーザー定義の)呼び出されます
-
あなたはライブラリ関数を使用する場合は、#は、本書の冒頭で使用されるライブラリ関数のために必要な時間についての情報を呼び出すことがディレクティブなどが使用する必要があります。
-
あなたは、ユーザー定義関数、呼び出し元の関数の後ろに位置の関数(すなわち関数呼び出し)である(同じファイル)を使用している場合は、それが呼び出された関数への呼び出し機能で文を作る必要があります
宣言:関数の名前、パラメータおよびパラメータ・タイプの数の関数と他の情報コンパイル通知システム
-
コンパイルおよび検査システムは、唯一のパラメータとパラメータの種類の数を気に
2つの方法で関数宣言の一般的な形式:
図1に示すように、 関数型関数名(パラメータタイプ1、タイプパラメータのパラメータ名1 ... N パラメータ名n)は、 図2に示すように、 関数型関数名(パラメータ1型、2 ....パラメータタイプパラメータ タイプN)
ネストされたコールと再帰関数の呼び出し
まず、ネストされたコール
-
C言語では、すなわち、関数を定義することにより、関数、すなわち、定義はネストすることができない、別の関数内で定義することができない、機能を互いに独立した、平行に定義されています。
-
ただし、関数呼び出しは、関数、及び他のファンクションコールを呼び出す過程で、すなわち、入れ子にすることができます。
第二に、再帰呼び出し
関数呼び出しを呼び出す処理では、直接または間接的に登場し、機能自体は、再帰関数呼び出しと呼ばれています。
パラメータの関数としてアレイ
まず、引数の関数としての配列要素
-
関数の引数としてではなく、パラメータとして配列要素。(関数が呼び出されたときに、パラメータを一時記憶手段が割り当てられているため)。
-
関数の引数として配列モードを使用する場合、引数の値は、パラメータ「送信値」に渡さ
-
データ転送の方向は、パラメータ、引数、一方向性伝動装置から送信されます
第二に、関数パラメータの傑作の一次元アレイ
可変のパラメータ値に送信引数配列要素は、配列傑作関数の引数が、配列要素であるとして送信パラメータ(または配列名ポインタ変数)に、使用される場合、配列の最初のエレメントのアドレスであります
第三に、多次元配列傑作関数パラメータ
多次元配列を使用すると、呼び出された関数で定義された形状パラメータの各次元のサイズを指定することができ、引数名と関数パラメータとして使用することができる、一次元記述のサイズを省略することができます。
例えば: int配列[10] [3] 及び INT配列[] [10] 2次元のサイズと正当に相当する、両方ではなく、および他の高次元の説明は省略する
メモリにおいて、アレイは、行によって記憶されているので、2次元アレイを定義するときには、列の数を指定する必要があります
ローカルおよびグローバル変数
各変数はスコープの問題があります
定義された変数は3例を持つことができます。
-
関数の先頭に定義され; - ローカル変数
-
合成関数の内部に定義された書類; - ローカル変数
-
外部関数の定義; - グローバル変数
ローカル変数
-
定義された関数内の変数は、本の範囲内で効果的に機能します。
-
複合文で定義された変数が存在するだけ複合文の範囲内で有効であると、本複合文でそれらへの参照のみが、複合文は外でこれらの変数を使用することはできません
これらは、ローカル変数と呼ばれています
説明:
-
変数は、メイン機能でのみ有効な主機能を定義した、他の変数で定義された関数を使用することができない主な機能
-
異なる機能は、同じ名前の変数に使用してもよいです
-
仮パラメータはローカル変数であります
-
内部関数では、化合物のステートメントは、これらの変数が唯一存在する化合物のステートメント、また「サブプログラム」又は「ブロック」と呼ばれる複合文に有効であることができ、変数を定義することができ
グローバル変数
-
外部変数と呼ばれる関数を定義した変数に加えて、外部変数は、(グローバル変数としても知られる)グローバル変数であります
-
その有効範囲は、可変位置の開始から終了ソースファイルに定義されています。
-
注意:ローカル関数の変数内に定義された変数、関数の外に定義された変数は、グローバル変数であります
-
グローバル変数のセットは、関数データとの間の接触のチャンネルを増やすことです