main関数の引数

#include <stdio.h>

int main(int argc, const char * argv[])
{
 
    // insert code here...
    printf("Hello, World!\n");
    return 0;
}

 上記の基本的なプログラムの中で、include文については以前お伝えしました。もう一つ、今まで詳しく触れなかった項目として

int main(int argc, const char * argv[])

 このmain関数の引数である「argc」「argv」が何かについて解説していきます。

 サブルーチンなど通常の関数の引数については、既にご存知かと思います。関数に引数を渡し、その引数である変数の中身を処理に利用していきます。実は、プログラムを実行する際、main関数に引数を渡して実行することが可能です。例えば、プログラムの使用者に何らかのキーボード入力を求めるときに使えます。前にご紹介した、C言語の入力用の命令であるscanf関数やfgets関数などでプログラムの実行処理中にキーボード入力を求めても良いですが、プログラムを実行する際に、そのプログラムに引数として渡し、その入力した値を処理に利用するようなことも可能です。

 プログラムの実行時に引数を渡す方法は、プログラムの実行方法に依存します。

  • Xcodeなどのツールの実行ボタンで実行する場合:引数を渡して実行するオプション機能を使う
  • 実行ファイルを作成して実行する場合:実行コマンドに引数を追加する

 前者は、使用するツールによって方法が異なりますので、ここでは実行ファイルを作って、コマンドプロンプト等のコマンドラインツールから実行する場合について触れたいと思います。「CProject」という実行ファイルを作成したとします。コマンドプロンプト等のコマンドラインツールを起動し、その実行ファイルが格納されているディレクトリまで遷移します。その後、

./CProject aaaaa bbbbb

 このように入力し、実行します。このとき、argv[1]に1番目の引数「aaaaa」が、argv[2]に2番目の引数「bbbbb」という文字が入ります。argv[0]は、プログラムを実行する命令である「./CProject」の文字が入ります。尚、argcには、argvの配列の要素数が入るので、ここでは「3」が入ります。

■スポンサーリンク

このページの先頭へ