ページ 11

関数呼び出しの引数が多すぎます とでる

Posted: 2013年2月24日(日) 21:02
by EIYUU
コードは、だいたいこんなかんじ

コード:

//システム.cpp
int talk(void){
c++;
	for(int j=0;j<256;j++){
		if(oldKey[j]==0&&Key[j]==1)
			Key[j]=2;
		oldKey[j]=Key[j];
	}
	if(c>=100){
	if(CheckHitKey(KEY_INPUT_RETURN)==1){
		c=0;
		i=0;
		ch_i++;
	}
	}
	if(i<=80-2&&ch[ch_i][i]!='\0'&&counter%5==0){
		i+=2;
		strncpy(disp,ch[ch_i],i);
		disp[i]='\0';
	}
	DrawFormatString(50,350,white,"%s",disp);
	counter++;
    if(ch_i>=6){
		g=1;
		return g;  //ここでこのgだけを返したい
	}
}

コード:

//main.cpp
ループ{
switch(state){
case 1:
   //いろいろ
case 2:
   state=talk(state);  //ここに問題が発生
  }
 }
こうなっているのですが、こうすると、問題が発生と書いてある部分で、
関数呼び出しの引数が多すぎます とエラーがでてしまいます。
このgの値をstateに渡したいのです。

Re: 関数呼び出しの引数が多すぎます とでる

Posted: 2013年2月24日(日) 21:08
by みけCAT
talkの引数はvoidなのに、stateという引数を渡しているのが問題です。

コード:

state=talk();
としてください。

エラーそのままの意味ですけど…

Re: 関数呼び出しの引数が多すぎます とでる

Posted: 2013年2月24日(日) 21:15
by box
コンパイルエラーの件はさておき…。
EIYUU さんが書きました:

コード:

    if(ch_i>=6){
		g=1;
		return g;  //ここでこのgだけを返したい
	}
ch_iが6以上のときには1を返しますが、それ以外のときには
何を返すか不定です。それでかまわないんですね?

Re: 関数呼び出しの引数が多すぎます とでる

Posted: 2013年2月24日(日) 21:19
by EIYUU
ありがとうございます!
ほかの部分は、自己解決しました