不正な1個の実引数をともなって?

[戻る]
さかた 2006/10/27(金) 09:30:56
関数が、不正な1個の実引数をともなって、よびだされました、
というコンパイルエラーが起りました。
これは、とういうことなんでしょうか?
1入力1出力の関数として、
その宣言側で、
int A;  
char  B[6];  
PlayS(); 

それを呼ぶ側で 
A = PlayS(B);  

呼ばれる方で、
PlayS(char *FNI)
{
 int Status;
 :::::
 :::::
 return(Status);
}                             と、やっております。

Blue 2006/10/27(金) 09:35:44
>PlayS(); 
が違うのでは?
というか、int型の値を返すので、宣言も定義も頭の int は省略すべきではないので
は。

>PlayS(); 
int PlayS(char*);

>PlayS(char *FNI)
int PlayS(char *FNI)

PATIO 2006/10/27(金) 09:48:16
宣言は引数無しの関数PlaySを宣言しているのに
呼び出す所ではPlaySに引数を一つ設定しているから
「関数が、不正な1個の実引数をともなって、よびだされました」
というエラーが出ていると思います。
と言うわけできわめてリーズナブルな理由だと思います。

呼び出される側と呼び出す側でのプロトタイプ宣言が違うのが問題です。
通常、この手のプロトタイプ宣言はヘッダーファイルで宣言しておいて
呼び出す側と呼び出される側の両方で同じ物を使うとおもいます。

あと、Blueさんが言われている返却値の部分も省略しないで明示した方が
良いと思います。省略する事でコーディング時のミスが起こりやすくなります。

古いスレッドには追加発言できません。