関数
From cppreference.com
関数とは、複合文(関数本体)を識別子(関数名)に関連付けるC言語の構文です。すべてのCプログラムはmain関数から実行を開始し、main関数は終了するか、他のユーザー定義関数またはライブラリ関数を呼び出します。
// function definition. // defines a function with the name "sum" and with the body "{ return x+y; }" int sum(int x, int y) { return x + y; }
関数は0個以上の仮引数 (parameter) を受け取ることができ、それらは関数呼び出し演算子の実引数 (argument) から初期化されます。また、return文によって呼び出し元に値を返すことができます。
int n = sum(1, 2); // parameters x and y are initialized with the arguments 1 and 2
関数の本体は関数定義で提供されます。(評価されない場合を除き)式中で使用される非インライン(C99以降)関数はそれぞれ、プログラム中でただ一度だけ定義されなければなりません。
(非標準のコンパイラ拡張で許可されている場合を除き)入れ子関数はありません。各関数定義はファイルスコープに現れなければならず、関数は呼び出し元のローカル変数にアクセスできません。
int main(void) // the main function definition { int sum(int, int); // function declaration (may appear at any scope) int x = 1; // local variable in main sum(1, 2); // function call // int sum(int a, int b) // error: no nested functions // { // return a + b; // } } int sum(int a, int b) // function definition { // return x + a + b; // error: main's x is not accessible within sum return a + b; }
[編集] 参照
- C23標準 (ISO/IEC 9899:2024)
- 6.7.7.4 関数宣言子(プロトタイプを含む) (p: TBD)
- 6.9.2 関数定義 (p: TBD)
- C17標準 (ISO/IEC 9899:2018)
- 6.7.6.3 関数宣言子(プロトタイプを含む) (p: 96-98)
- 6.9.1 関数定義 (p: 113-115)
- C11標準 (ISO/IEC 9899:2011)
- 6.7.6.3 関数宣言子(プロトタイプを含む) (p: 133-136)
- 6.9.1 関数定義 (p: 156-158)
- C99標準 (ISO/IEC 9899:1999)
- 6.7.5.3 関数宣言子(プロトタイプを含む) (p: 118-121)
- 6.9.1 関数定義 (p: 141-143)
- C89/C90標準 (ISO/IEC 9899:1990)
- 3.5.4.3 関数宣言子(プロトタイプを含む)
- 3.7.1 関数定義
[編集] 関連項目
| 関数の宣言のC++ドキュメント
|