C++ 컴파일 오류: 함수 호출이 함수 선언과 일치하지 않습니다. 어떻게 해결하나요?
C++ 프로그램을 개발할 때 필연적으로 컴파일 오류가 발생합니다. 일반적인 오류 중 하나는 함수 호출이 함수 선언과 일치하지 않는다는 것입니다. 이러한 종류의 오류는 C++ 프로그래머들 사이에 널리 존재합니다. 함수 선언의 정확성에 주의를 기울이지 않기 때문에 컴파일 문제로 이어지며, 이는 결국 문제를 해결하는 데 시간과 에너지를 낭비하고 개발 효율성에 영향을 미칩니다. 이 실수를 피하는 방법은 몇 가지 규범과 표준 관행을 따라야 합니다. 아래에서 살펴보겠습니다.
함수 호출 불일치 오류란 무엇인가요?
함수 호출 불일치 오류는 일반적으로 컴파일러가 함수 호출을 해당 선언과 일치시킬 수 없을 때 발생합니다. 이러한 상황은 일반적으로 다음과 같은 경우에 발생합니다.
함수 호출이 함수 선언과 일치하지 않는 오류를 해결하는 방법
함수 호출이 함수 선언과 일치하지 않는 오류를 해결하려면 다음 단계를 따라야 합니다.
함수 호출과 함수 선언이 일치하지 않는 경우 불일치 오류가 발생하면 먼저 함수의 선언과 정의가 매개변수와 일치하는지 확인해야 합니다. 일치하지 않으면 함수 선언의 매개변수 유형을 변경하거나 함수 정의의 매개변수 유형을 변경하여 선언과 일치하도록 해야 합니다.
예:
선언: int function(int a, int b);
정의: int function(int a, float b){}
위의 예에서 함수 선언에는 두 개의 정수 매개변수가 있지만 함수 정의에는 정수 하나와 부동 소수점 매개변수 하나가 있으므로 함수 정의의 두 번째 매개변수 유형을 정수로 변경해야 합니다.
반환 유형이 일치하지 않으면 컴파일러는 함수 호출이 함수 선언과 일치하지 않는다는 오류를 발행합니다. 이 경우 함수 정의와 선언된 반환 유형이 동일한지 확인해야 합니다. 동일하지 않은 경우 함수 정의 및 선언에서 반환 유형을 변경하여 동일하게 만들어야 합니다.
예:
선언: float function(float a, float b);
정의: int function(float a, float b){}
위의 예에서 함수 선언은 부동 소수점 숫자를 반환하지만, 함수 정의는 정수를 반환하며, 부동 소수점을 반환하도록 함수 정의를 변경해야 합니다.
함수 선언과 정의의 이름과 매개변수에 오류가 없는데 컴파일러가 여전히 함수 호출과 함수 선언 불일치 오류를 보고하는 경우 , 함수 명령문이나 정의를 찾을 수 없기 때문일 수 있습니다. 이 경우 파일 포함 및 링크를 다시 확인해야 할 수도 있습니다.
예:
선언과 정의는 정확하지만 여전히 함수 호출이 함수 선언과 일치하지 않는다는 오류가 있습니다.
int main()
{
int result = foo(3,4); return 0;
}
이 경우 다음으로 헤더 파일 function.h가 제대로 포함되어 있는지 확인해야 합니다.
C++에서는 소스 파일, 헤더 파일, 라이브러리 파일 등 여러 위치에 함수를 선언할 수 있습니다. 여러 번 선언하면 컴파일 타임 오류가 발생하고 함수 선언과 일치하지 않는 함수 호출이 발생할 수 있습니다. 따라서 적절한 변경이나 삭제가 이루어질 수 있도록 파일에 중복된 선언이 있는지 확인해야 합니다.
결론
함수 호출과 함수 선언 사이의 불일치 오류는 C++ 컴파일러에서 오류를 발생시켜 프로그램의 정상적인 작동에 영향을 줄 수 있습니다. 따라서 프로그래머는 이러한 오류를 피하거나 해결하기 위해 매개변수 및 반환 유형 일치, 헤더 파일을 올바르게 포함하고 파일에 중복 선언이 있는지 확인하는 등 일부 사양을 따라야 합니다. 컴파일 오류가 발견되면 신중하게 검사하고 단계별로 해결하여 프로그램의 정확성과 정확성을 보장해야 합니다.
위 내용은 C++ 컴파일 오류: 함수 호출이 함수 선언과 일치하지 않습니다. 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!