개념적 질문.형식 호환 규칙 및 함수 선언
Line 4: error: conflicting types for 'brasa'
Line 3: note: previous declaration of 'brasa' was here
Line 5: error: conflicting types for 'brasa'
Line 3: note: previous declaration of 'brasa' was here
는 그 메시지의 종류 :
#include<stdio.h>
int brasa(int, float);
int brasa(int, int);
float brasa(int, int);
int main(){
return 0;
}
컴파일러는 다음과 같은 오류를 제공합니다 : 다음 코드를 고려? 또 다른 개념적 질문 : 세 가지 선언을하십시오 모두 동일한 기능을 선언 하시겠습니까?
"어떤 종류의 메시지입니까?" 코드에 오류가 있음을 알리는 오류 메시지입니다. "3 가지 선언은 모두 같은 기능을 선언합니까?" 개념적으로, 아뇨, 아무 것도 선언하지 않습니다. 코드가 컴파일되지 않기 때문입니다. 당신은 틀림없이 첫 번째 것이 무언가를 선언하고 다른 것은 오류라고 말할 수 있지만 코드가 컴파일되지 않으면 실제로는 큰 문제가되지 않습니다 ... – twalberg
형식 호환성 협약을 위반 한 이유는 무엇입니까? – user3482381
"형식 호환 규칙"은 함수 선언에 사용되지 않습니다. @haccks는 대답에서 언급했듯이 C는 인자/반환 유형이 다른 경우에 오버로드가 발생하지 않고 특정 이름을 가진 함수를 하나만 선언 할 수 있습니다. 'float f = 1;'은 다른 이야기입니다 - 타입 호환성이 중요한 부분입니다. 컴파일러는 필요에 따라 자동으로 적절한 변환을 삽입합니다 ... – twalberg