함수 프로토타입 선언안하고 이런식으로 코드짜서 답이 나온다라고 해도 되는지 궁금합니다.
순간 헷갈려가지고 여러가지 컴파일러로 다 해보고왔는데 비쥬얼 스튜디오 최신버전에선 무슨 수를 썻는지 원래 안됐던걸로 기억하는데 에러나 워닝조차 없이 잘 됩니다만,
나머지 환경에서는 당연히 에러뿜습니다. dev cpp라던지..
답은 에러가 아닌지요. 정확하게 말하면 mp가 선언되지 않았다고 에러가 떠야합니다.
안녕하세요 길벗수험서 운영팀입니다.
원칙대로라면 사용자정의함수는 함수가 사용되기 전에(main() 전에) 정의되어야 하지만,
간혹 해당 문제와 같이 프로토타입도 없이 사용 후에 정의되는 경우가 있습니다.
이 때 몇몇 컴파일러의 버전은 전처리 시 자동으로 함수의 위치를 재배치하여 실행하는 터라,
해당 코드와 같이 잘못 배치되어 있더라도 정상적으로 결과가 나오게 됩니다.
다만 교재의 문제는 실제 시험에 출제된 코드들을 수록한 것이므로,
실제 실행 시 함수 정의부의 위치로 인한 에러가 발생한다면 단순히 컴파일러의 차이구나 정도로만 인식해두시고,
정의부를 이동시킨 후 컴파일하여 결과를 확인해보시기 바랍니다.
행복한 하루되세요 :)
-
관리자2022-06-13 09:30:38
안녕하세요 길벗수험서 운영팀입니다.
원칙대로라면 사용자정의함수는 함수가 사용되기 전에(main() 전에) 정의되어야 하지만,
간혹 해당 문제와 같이 프로토타입도 없이 사용 후에 정의되는 경우가 있습니다.
이 때 몇몇 컴파일러의 버전은 전처리 시 자동으로 함수의 위치를 재배치하여 실행하는 터라,
해당 코드와 같이 잘못 배치되어 있더라도 정상적으로 결과가 나오게 됩니다.
다만 교재의 문제는 실제 시험에 출제된 코드들을 수록한 것이므로,
실제 실행 시 함수 정의부의 위치로 인한 에러가 발생한다면 단순히 컴파일러의 차이구나 정도로만 인식해두시고,
정의부를 이동시킨 후 컴파일하여 결과를 확인해보시기 바랍니다.
행복한 하루되세요 :)