【C言語】関数に関するキーワード一覧と使い方
C言語の関数に関するキーワード
目次
return
return
は関数の戻り値を指定し、関数の実行を終了するために使用されるキーワードです。
使用例
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int result = add(5, 3);
printf("結果: %d\n", result);
return 0;
}
注意点
- 戻り値が
void
の場合、return
は省略可能。 - 関数の戻り値の型と
return
の型を一致させる。
void
void
は「何も返さない」または「引数なし」の意味を持つキーワードです。
使用例
#include <stdio.h>
void greet() {
printf("こんにちは!\n");
}
int main() {
greet();
return 0;
}
注意点
- 関数の戻り値がない場合に使用。
- 引数がないことを明示する場合に
void
を指定(C++では不要)。
static
static
は関数や変数のスコープを制限するキーワードです。
使用例
#include <stdio.h>
static int counter = 0; // ファイル内でのみ有効
void increment() {
counter++;
printf("カウンター: %d\n", counter);
}
int main() {
increment();
increment();
return 0;
}
注意点
static
関数は他のファイルから参照不可。- 関数内の
static
変数は関数が呼ばれても値を保持する。
inline
inline
は関数をインライン展開することをコンパイラに指示するキーワードです。
使用例
#include <stdio.h>
inline int square(int x) {
return x * x;
}
int main() {
printf("5の二乗: %d\n", square(5));
return 0;
}
注意点
- コンパイラの最適化次第でインライン展開されないこともある。
- 頻繁に呼ばれる小さい関数に適用すると有効。
extern
extern
は他のファイルに定義された変数や関数を参照するために使用されます。
使用例
(例として2つのファイルを使用)
file1.c
#include <stdio.h>
int global_var = 10;
void print_var() {
printf("グローバル変数: %d\n", global_var);
}
file2.c
#include <stdio.h>
extern int global_var;
extern void print_var();
int main() {
print_var();
return 0;
}
注意点
- 変数・関数の実体は別のファイルにあることが前提。
- ヘッダーファイルに関数プロトタイプとともに記述することが多い。
restrict
restrict
はポインタに対し「他のポインタとエイリアスしない」ことを保証するキーワードです。
使用例
#include <stdio.h>
void add_arrays(int *restrict a, int *restrict b, int *restrict result, int size) {
for (int i = 0; i < size; i++) {
result[i] = a[i] + b[i];
}
}
int main() {
int x[] = {1, 2, 3};
int y[] = {4, 5, 6};
int z[3];
add_arrays(x, y, z, 3);
for (int i = 0; i < 3; i++) {
printf("%d ", z[i]);
}
printf("\n");
return 0;
}
注意点
- C99以降で使用可能。
- コンパイラの最適化を助けるが、使用を誤ると未定義動作を引き起こす可能性あり。