2008年11月10日

《int main()》ってなに?

猫ウィン先生の講義の、先日で2章が終わりました。
個人的には、『何とかなっている』と思っています。
ほんでもって、3章に進もうと思ったのですが、
あいにく、買い物に行くことになったので、
講義を聞く時間がありませんでした。

まぁ、そんなわけで『今日の投稿はどうしようか』と
おもったのですが、カテゴリだけ作ってほっといた
項目がありましたので、急遽その関連で記述することに
しました。

このカテゴリは猫ウィンおよびシー先生の講義の中で
コボラーがつまずきそうなところについて私がわかる範囲内で
記述しようと思っています。

たとえば、先日のインクリメントの評価の云々のお話みたいなものも
ここのカテゴリー記述しようと思っています。

*******************************
第1回目:《int main()》ってなに?
*******************************

『おいおい、そこまで初心者じゃないぞ』と声が聞こえてきそうですが、私からすると、これが奥深いのです。

下のコードは、いわゆるこの系統の本ででてくるお決まり
《Hallo World》を出力するコードですよね。

#include
int main(){
  printf("Hallo World");
  return 0;
}

『このコードの説明は。。。』
『おいおい、まさかそんなこと説明するのか』
『はい、説明させていただきます。』
『"Hallo World"の文言を出力する《戻り値がint型の関数》です。』

『関数ってゆうことは、引数の記述ができるはずですよね』
『戻り値があるっとゆうことは、誰かが参照できるのですよね』

『そんじゃ、その引数はどうやって指定するのでしょうか?』
『そして、その戻り値はどうやって参照できるのでしょうか?』

ここで、『なんじゃそんなことぐらい解っているわい』
とおっしゃる方は、読みとばしてください。

    興味のある方は下の説明に従って、作業を進めてみてください。
  • 《準備1》Cソースの作成
    下のコードをCOPYしてテキストエディタへ
    貼り付けてコンパイルしてください。
    ※セーブ時の拡張子は《.c》としてください。

    #include 
    int main (int argc , char *argv[]){
    int i=0;
    //引き渡された、引数の個数を出力
    printf("引数は%d個です\n",argc);

    //引き渡された、引数のの内容を出力
    for (i=0;argc>i;++i){
    printf("%d番目の引数の内容は、%sです\n",i,argv[i]);
    }

    if (argc==1)
    //引数が1個の時、エラーとし9を戻り値とする
    return 1;
    else
    //引数が1個以外の時、正常とし0を戻り値とする
    return 0;
    }




  • 《準備2》バッチプログラムの作成
    下のコードをCOPYしてテキストエディタへ
    貼り付けてセーブしてください。
    ※セーブ時の拡張子は《.bat》としてください。
    ※セーブ場所は、C言語ソースをコンパイルして
    EXEができたフォルダと同じところに保存してください。


    echo OFF
    echo "テストプログラムを実行します。"
    echo **引数がある場合です**
    c1_arg.exe dull man end
    echo ”c1_arg”のRETURNは%ERRORLEVEL%
    echo **********************

    echo **引数がない場合です**
    c1_arg.exe
    echo ”c1_arg”のRETURNは%ERRORLEVEL%
    echo **********************


    <説明>すいませんコメントアウトの仕方をわすれてしまったので(なさけない)
    echo off :コマンドを表示しない
    echo 文字列 :文字列を表示する
    c1_arg.exe dull man end
    :c1_arg.exe を起動する→EXE名は必要に応じてに合わせてください
    上のC言語ソースを、《abc.c》で保存した場合、
    《abc.exe》にしてください。
    :《dull man end》は引数です
    :引数は、空白で区切られます。
    従って、この場合の引数は3個です
    《dull》で一個/《man》で一個/《end》で一個となります。



  • コマンドプロンプトを立ち上げてください。
    WINDOWSのスタートボタンよりアクセサリ内のコマンドプロンプトを起動してください。

  • パスの変更(EXEが登録されているフォルダへ移す)

  • バッチプログラムの起動
    拡張子が<.bat>を起動してください。


  • 全体的な例を以下にしめします。

    C:\>d:                //ドライブ変更

    D:\>cd D:\vc++_study\c1_arg\Debug  //パスの変更

    D:\vc++_study\c1_arg\Debug>c1_bat.bat //バッチファイルを起動

    D:\vc++_study\c1_arg\Debug>echo OFF //バッチプログラム開始
    "テストプログラムを実行します。"  //バッチプログラムで表示
    **引数がある場合です**       //バッチプログラムで表示
    引数は4個です            //cプログラムで表示
    0番目の引数の内容は、c1_arg.exeです //cプログラムで表示
    1番目の引数の内容は、dullです    //cプログラムで表示
    2番目の引数の内容は、manです    //cプログラムで表示
    3番目の引数の内容は、endです    //cプログラムで表示
    c1_arg”のRETURNは0     ///バッチプログラムで表示
    **********************     //バッチプログラムで表示
    **引数がない場合です**        //バッチプログラムで表示
    引数は1個です            //cプログラムで表示
    0番目の引数の内容は、c1_arg.exeです //cプログラムで表示
    ”c1_arg”のRETURNは1     //バッチプログラムで表示
    **********************
    ※引数には、起動EXEファイル名も含まれる。


つまりバッチプログラムで、RETURNの値をチェックして、
エラーログを出力するとか、処理を中断するとか
色々な制御ができるとゆうことです。

以外に時間がかかってしまいました。
一杯のんで寝ます。

posted by ダルマン at 00:16| Comment(0) | TrackBack(0) | コボラーのためのC言語 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/109346864
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック