ページ 11

関数に 1 個の引数を指定できません

Posted: 2010年8月25日(水) 17:30
by 五代
int main(void)

{
double a,f();
a=f(2); //ここで「関数に 1 個の引数を指定できません」のエラー
return(0);}

double f(double x)
{
double y;
y=pow(x,2);
return y;
};
なぜだか全然わかりません。お願いします。

Re:関数に 1 個の引数を指定できません

Posted: 2010年8月25日(水) 17:32
by シエル
double a,f();
↑このf()はいりません。

double f(double x) ;
↑このプロトタイプ宣言をmain関数の上に書いてください。

Re:関数に 1 個の引数を指定できません

Posted: 2010年8月25日(水) 17:38
by 五代
解決しました!!
シエルさんありがとうございます!!!!

Re:関数に 1 個の引数を指定できません

Posted: 2010年8月25日(水) 17:58
by toyo
質問見て思いついたんですがこういうのもありですかね

int main(void)
{
double a,f(double);
a=f(2);
return(0);}

double f(double x)
{
double y;
y=pow(x,2);
return y;
};

Re:関数に 1 個の引数を指定できません

Posted: 2010年8月25日(水) 18:02
by シエル
そんな書き方もできるんですね。
まったく知りませんでした。
なんかいつも質問者じゃないのに勉強になってしまいますw

Re:関数に 1 個の引数を指定できません

Posted: 2010年8月25日(水) 18:18
by たかぎ
解決にはなっていますが...

CでコンパイルすべきものをC++でコンパイルしようとしていませんか?
Cなら最初のソースでもコンパイルできると思います。

Re:関数に 1 個の引数を指定できません

Posted: 2010年8月25日(水) 19:09
by 五代
たかぎさんのおっしゃる通りVisual c++でやってますが今までCで何の問題もありませんでした。
Visual c++だとダメな時もあるということですか?

Re:関数に 1 個の引数を指定できません

Posted: 2010年8月25日(水) 22:28
by たかぎ
> Visual c++だとダメな時もあるということですか?

C++だとダメだということです。
詳細は、↓の「仮引数並びを省略した場合の振る舞い」を参照してください。
http://www.kijineko.co.jp/tech/cpp2c/part3

Re:関数に 1 個の引数を指定できません

Posted: 2010年8月26日(木) 12:37
by 五代
勉強になりました。
たかぎさん、ありがとうございました。