【C言語】メイン(main)関数の基本

【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言語のメイン関数の基本的な解説です。初心者の方はまず基本的な形を理解し、少しずつ応用を試してみると良いでしょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です