int func(x)
int x;
{
.............
この種の宣言は何と呼ばれますか?関数名の後の関数パラメータの宣言
CまたはC++を含む有効/無効はいつですか?特定の標準リビジョンとコンパイラはありますか?
int func(x)
int x;
{
.............
この種の宣言は何と呼ばれますか?関数名の後の関数パラメータの宣言
CまたはC++を含む有効/無効はいつですか?特定の標準リビジョンとコンパイラはありますか?
これはまだ有効ですが、ANSIより前のものです。それは実際にK & Rインデントスタイルがその名前を得た場所です。これは奇妙に見えるので、開口部ブラケットは、機能ブロックの後の行にある:
とにかくint func(x)
int x; {
...
}
、このスタイルが原因a problem with function prototypesお勧めできません。
K & Rのスタイルですが、やはり落ち着いていますが、まだ有効です。おそらくFortran(関数の型の型は、最近のF95でまだ関数本体内に定義されています)
これは古いスタイルのCです。それはもうほとんど見られません。
K & R Cパラメータ宣言の構文で、ANSI Cでは有効ですがC++では有効ではありません。
関数プロトタイプです。このようにしないと、mainの前に関数を書く必要があります。そうしないと、コンパイラはmainでそれを使ったときの関数を知ることができません。あまり説明的ではないので、もう使用されません。
int someFunction(int someParamX int someParamY);
問題の例は、実際には関数*定義*であり、 'int func(x)'の後ろにセミコロンがないことに気付きます。 –
関数定義がプロトタイプを持つのを止めるものは何もありません。しかし、この関数定義にはプロトタイプはありません。だから-1私も –
+1有効ですが、まれであり、推奨されません。 :) –