【C言語】メイン(main)関数の基本
メイン関数とは
メイン関数(main
関数)は、C言語のプログラムのエントリーポイント(実行開始地点)です。C言語でプログラムを作成するとき、必ずmain
関数が必要になります。
コンパイラはプログラムを実行する際、main
関数を探し、そこから処理を開始します。他の関数はmain
関数から呼び出されるか、別の場所から呼び出されます。
メイン関数の定義
C言語のメイン関数の一般的な定義は次のようになります。
#include <stdio.h>
int main(void) {
printf("Hello, World!\n");
return 0;
}
ここでのポイント:
int
– メイン関数の戻り値の型(整数型)main
– メイン関数の名前(予約された識別子)void
– 引数なしを示す(省略可能)return 0;
– プログラムの正常終了を示す
戻り値と終了ステータス
メイン関数は整数型(int
)を返します。通常、以下のように使われます。
return 0;
– 正常終了return 1;
– エラー終了
例えば、エラー発生時にreturn 1;
を使う場合:
#include <stdio.h>
int main(void) {
printf("エラーが発生しました。\n");
return 1;
}
コマンドライン引数
メイン関数はコマンドライン引数を受け取ることができます。その定義は次のようになります。
int main(int argc, char *argv[])
argc
– 引数の数argv
– 引数の文字列配列
例えば、コマンドライン引数を表示するプログラム:
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("引数の数: %d\n", argc);
for (int i = 0; i < argc; i++) {
printf("引数[%d]: %s\n", i, argv[i]);
}
return 0;
}
このプログラムを ./a.out test1 test2
で実行すると、次のように表示されます。
引数の数: 3
引数[0]: ./a.out
引数[1]: test1
引数[2]: test2
メイン関数の具体例
基本的なプログラム
#include <stdio.h>
int main(void) {
printf("C言語の基本プログラム\n");
return 0;
}
引数を使った加算プログラム
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
if (argc != 3) {
printf("使用方法: %s num1 num2\n", argv[0]);
return 1;
}
int num1 = atoi(argv[1]);
int num2 = atoi(argv[2]);
printf("合計: %d\n", num1 + num2);
return 0;
}
実行例:
./a.out 5 10
合計: 15
ファイルの内容を表示するプログラム
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("使用方法: %s filename\n", argv[0]);
return 1;
}
FILE *file = fopen(argv[1], "r");
if (file == NULL) {
printf("ファイルを開けませんでした。\n");
return 1;
}
char line[256];
while (fgets(line, sizeof(line), file)) {
printf("%s", line);
}
fclose(file);
return 0;
}
メイン関数のベストプラクティス
1. 返り値を適切に設定する
成功時には return 0;
、エラー時には return 1;
など適切な終了コードを返しましょう。
2. コマンドライン引数のチェックをする
引数の数をチェックし、不正な入力を防ぎます。
3. 可読性の高いコードを書く
コードが読みやすくなるように適切なコメントを入れましょう。
4. メモリリークを防ぐ
動的メモリを使う場合は、free()
を忘れずに呼びましょう。
以上がC言語のメイン関数の基本的な解説です。初心者の方はまず基本的な形を理解し、少しずつ応用を試してみると良いでしょう。