1

次のように main 関数を宣言すると、C プログラムが機能しないのはなぜですか (引数の位置を反転させました)。

int main(char * argv, int argc){
}

問題なくコンパイルできましたが、実行するとエラーが発生しました。

ありがとう。

4

3 に答える 3

2

C++ とは異なり、C の関数は引数ではなく名前だけで識別されます。たとえば、リンカは「メイン」関数が表示されると非常に満足します。

それにもかかわらず、main() がオペレーティング システムによってどのように呼び出されるかについては、一定の前提があります。ランタイム環境。パラメータが間違っていると、プログラムに予期しない値が表示され、クラッシュする可能性があります。

ところで、プログラムのビルド時に診断を有効にすると ('-Wall -W' など)、エラーや警告が表示される可能性があります。

于 2013-10-26T15:14:47.247 に答える
1

これは間違った main() シグネチャです。main 関数を確認できます。

パラメーター argc (引数カウント) と argv (引数ベクトル、1 ) はそれぞれ、プログラムのコマンドライン引数の数と値を示します。argc と argv の名前は、C で有効な任意の識別子である可能性がありますが、これらの名前を使用するのが一般的な規則です。

また、main() は C および C++ で何を返す必要がありますか?も確認してください。

于 2013-10-26T15:11:51.403 に答える