2009-11-15 3 views
0

나는 기능이 있습니다C에서 함수 인수로 두 개의 문자를 전달할 수없는 이유는 무엇입니까?

int get_symbol(tab *tp, FILE *fp, char delim) 

을 나는 다음과 같이 호출 : 없음이 모두 잘 작동

int get_symbol(tab *, FILE *, char); 

:

get_symbol(tp, fp, ';') 

나는 항상 같은 헤더에 선언해야 함수에서 코드를 실행할 수 있으며 delim이 설정됩니다. 하지만 같은 함수의 서명에 한 번 더 문자를 추가하려고하면 :이 기능은 실행을 중지

int get_symbol(tab *tp, FILE *fp, char delim1, char delim2) 

. 왜 그랬을까요?

+1

게시자가 게시 한 게시물에서 작동합니다. 문제를 더 자세히 설명 할 수 있습니까? "실행 중지"는 정확히 어떻게 생겼습니까? – bluebrother

+1

"실행 중지"란 무엇을 의미합니까? – Pod

+1

코드에 버그가 있습니다. 코드를 보여주세요. – nos

답변

1

당신이 있어야합니다

int get_symbol(tab *tp, FILE *fp, char delim1, char delim2) 
{ 
blah blah; 
return 1; 
} 
... 
... 

get_symbol(tp, fp, ';','?') 

당신을합니까?

0

"실행을 멈춘다"는 의미는 추측하여 헤더 파일의 서명도 업데이트 했습니까?

+0

예, 물론 .... – goe

+0

"실행 중지"란 무엇을 의미합니까? 함수에 대한 코드를 게시하고 발생할 것으로 예상되는 것을 설명해야합니다. –

1

여기에는 정보가 충분하지 않으므로 답변에 야생 막대를 만들 예정입니다.

C++ 컴파일러를 사용 중이며 경고 수준이 너무 높게 설정되지 않았습니다. 함수의 프로토 타입을 변경했지만 호출 할 때 인수를 변경하지 않았습니다. C++ 컴파일러는 overloading 때문에 이러한 함수를 다른 함수로 처리하므로 올바른 함수를 호출하지 않습니다.

이것은 무슨 일이 일어나고있는지를 보여줍니다. 그렇다면 더 많은 것을 우리에게주세요 ....

관련 문제