4

私を混乱させるので、これは「奇妙な」質問です。私は C を学んでいましたが、私の C の本には載っていない質問があることに気付きました。

int main()またはのような関数を開始するときvoid name()、角かっこに何を入れるかをどうやって知るのですか... likeint main(int argc, char *argv[])または just int main().

ばかげた質問ですが、プログラミングでいつ何を使うべきかわかりません。オンライン リンクへのリソースが役立ちます。

ありがとう、そして愚かでごめんなさい。

4

3 に答える 3

5

関数に渡す変数は、その入力または(場合によっては)その出力です。たとえば、2つの整数を加算してそれらの合計を返す関数を作成する場合は、次のように定義できます。

int sum(int m, int n) {
  return m + n;
}

このmain()関数は、プログラムに提供されるコマンドライン引数を操作するため、特殊なケースです。ほとんどの言語でmain()は、各文字列のコマンドラインから1つの単語を含む、文字列の配列を取ります。Cでは、コマンドラインで入力された単語の数を表す整数も取ります。

于 2012-05-14T23:02:44.550 に答える
4

に関する特定の質問main()では、渡されたコマンドライン引数を参照するときに括弧内の引数が必要になります。関数を宣言するさまざまな方法について混乱する可能性があります。初心者のCプログラマーは、常にint func(int a, int b)同じ行で戻り型、関数名、パラメーター、およびパラメーター型を宣言する必要があります。他の構文があなたを混乱させないでください-ほとんどは歴史的な理由でそこにあります、そしてあなたがそれらがそこにある理由を知るのに十分知っているとき、あなたはあなた自身でこの質問に答えるのに十分知っているでしょう:)

于 2012-05-14T23:02:26.657 に答える
1

正しい署名は ですがmain(int argc, char *argv[])、 が表示されることも珍しくありませんint main()。これが機能するのは、 C が外部関数の署名のチェックについて特に厳密ではないためです(それができるはずがありません。C で外部関数を呼び出すときは、関数へのポインターと引数リストを与えるだけです。方法はありません)。その関数を最初に定義された方法で使用していることを実際に確認できます。)

したがって、これも機能します。

int main(int argc) { return 0; }

これでも次のようになります。

int main(int argc, char *argv[], int foo) { return 0; }

に意味のある値が表示されるとは思わないでくださいfoo

于 2012-05-15T00:12:22.743 に答える