2

以下のコードで。

  • 引数なしで関数プロトタイプを定義しました
  • 定義と関数呼び出しで、1 つのパラメーターを使用しました。

エラーが発生しない理由を知りたいですか?

# include <stdio.h>
float circle();       /* no parameter*/
int main()
{
    float area;
    int radius =2;
    area=circle(radius);
    printf("%f \n",area);
    return 0;
}

float circle( r) /* with one parameter even no parameter type */
{
    float a;
    a=3.14*r*r;
    return (a);
}
4

3 に答える 3

4

float circle();

パラメータがゼロの関数ではありません。不特定数のパラメータを持つ関数です。

float circle( r) {

は K&R スタイルの定義であり、rデフォルトの型はintです。https://stackoverflow.com/a/18433812/367273を参照してください

于 2013-10-02T14:58:49.163 に答える
2

これは、にパラメータが定義されていない場合、コンパイラがデフォルトrとして扱うためです。関数プロトタイプを次のように宣言した後、コードを実行してみてください intcircle

float circle(void);  

エラーが発生します。

于 2013-10-02T14:59:00.183 に答える