Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[5786] Re:안되는 부분이 있어 질문드립니다..
외랑 [] 1849 읽음    2006-08-02 09:44
C/C++ 언어는 무엇이든 사용하기 전에 선언이나 정의가 필요합니다.
main()함수 에서 butler()이라는 함수를 사용하는데, 이것은 실제로는 뒤에서 정의되고 있습니다.
그래서 main()에서는 이 녀석이 어떤 것인지 모르는 거지요. 그래서 에러를 냅니다.
또한 생략하는 경우 기본적으로 int로 생각하는 경향이 있습니다.
여기서 main()과 butler() 이란 함수는 int main(), int butler()로 생각하게 됩니다.
그래서 두번째의 warning(경고)인 함수의 리턴값이 없다고 나옵니다.

해결방안은 단순히 butler()함수를 main()위로 위치 이동하거나
정의 보다 선언을 먼저 해주는 형태로 main()함수 이전에 bulter(); 이라고 선언해주시면 됩니다.
경고문구는 함수의 끝부분에 return 0; 이라고 추가하시면 됩니다.
C++ 컴파일러라면 명시적으로
void 키워드를 쓸 수 있으므로 리턴값이 없다고 void main(), void butler()이라고 적으시면 됩니다.

영문 메시지가 나온다고 어려워하실 필요는 없습니다.
이미 알려진 영문 메시지들은 다 해석된 형태로 올려져 있으니 그걸 참고하시면 되고,
조금 익숙해지면 어떤 경우란 게 영문 해석하지 않아도 자연히 알게 됩니다.
또한 메시지는 매번 맞다고도 볼 수는 없습니다.
위쪽 라인에서 틀린 경우 아래 라인에서 다른 에러의 메시지가 나오는 경우도 많으니까요...


쇼우스 님이 쓰신 글 :
: 음.. 제가 c언어 공부를 시작한지 얼마 안된 초보입니다..
: 제가 사는곳에 가르치는 학원이 없어 독학을 하는데 독학으론 질문할 사람도 같이할사람도 없이
: 하려니 많이 힘들군요...
: 책을 두권사서하는데 예제가 제목이 함수의 호출 이었는데요
:
: 1   #include <stdio.h>
: 2   main()
: 3   {
: 4   printf("I will summon the butler function.\n");
: 5   butler();
: 6   printf("yes. bring me some tea and floppy disks.\n);
: 7   }
: 8  
: 9   butler()
: 10 {
: 11 printf("you rang, sir?\n");
: 12 }
:
:
: 저장하니 메세지에
:
: error : CPP5 :Function 'butler' should have a prototype
: warning : CPP7 : Function should return a value
: warning : CPP12 :Function should return a value
:
: 뜨는군요.. 영어 실력도 좋지않은지라.. 해결하기가 힘들더군요..
: 해결 부탁드립니다...

+ -

관련 글 리스트
5782 안되는 부분이 있어 질문드립니다.. 쇼우스 1786 2006/08/01
5815     Re:안되는 부분이 있어 질문드립니다.. 우동심 1851 2006/09/10
5786     Re:안되는 부분이 있어 질문드립니다.. 외랑 1849 2006/08/02
5784     Re:안되는 부분이 있어 질문드립니다.. 조준회 1777 2006/08/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.