함수 선언 할때 void 형과 int 형의 차이가 뭐죠...
반환값이 없어 void 형으로 함수를 선언 했는데...
warnign : 'function name' was previously implicitly declared to return 'int'
이런 메세지가 떠거든요....
int형으로 함수를 선언하면 이상이 없는데...
왜 그런거죠...
부탁을 드립니다...
void는 반환값이 없는거고, int는 정수형을 반환하는겁니다.
소스 앞쪽을 찾아보세요. 이미 int형으로 지정되어있는 함수가, void형으로 재지정 되었다는 경고입니다. (영어 공부 합시다)
일단 영어로 나온 경고 내용은, "앞에 묵시적으로 return형이 int로 선언했다"
정도 입니다.
말씀하신 상황이 일어나는 것은 함수의 프로토타입이 제대로 선언되지 않아서 입니다.
c에서는 별다른 프로토타입이 없으면 리턴값을 int로 인식합니다. 컴파일 도중 정의되지 않은
함수가 나오면 일단 리턴형을 int로 가정하는데, 나중에 함수가 정의된 부분이 나오면서
int가 아닐때 위와 같은 경고가 나오는 겁니다.
질문하신 분 코드가 전체적으로 아래와 같을 겁니다.
test() { call_func(); } void call_func() { }
이렇게 바꾸어 보면 경고가 나지 않을겁니다
void call_func() { } test() { call_func(); }
그런데, 모든 경우에 함수를 부르기전에 정의하는 것은 힘들므로
void call_func(); test() { call_func(); } void call_func() { }
c언어 책에서 프로토타입 부분은 좀 더 참조하시기 바랍니다.
...^^;
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
void는 반환값이 없는거고, int는 정수형을 반환하는겁니다.[
void는 반환값이 없는거고, int는 정수형을 반환하는겁니다.
소스 앞쪽을 찾아보세요. 이미 int형으로 지정되어있는 함수가, void형으로 재지정 되었다는 경고입니다. (영어 공부 합시다)
일단 영어로 나온 경고 내용은, "앞에 묵시적으로 return형이 int
일단 영어로 나온 경고 내용은, "앞에 묵시적으로 return형이 int로 선언했다"
정도 입니다.
말씀하신 상황이 일어나는 것은 함수의 프로토타입이 제대로 선언되지 않아서 입니다.
c에서는 별다른 프로토타입이 없으면 리턴값을 int로 인식합니다. 컴파일 도중 정의되지 않은
함수가 나오면 일단 리턴형을 int로 가정하는데, 나중에 함수가 정의된 부분이 나오면서
int가 아닐때 위와 같은 경고가 나오는 겁니다.
질문하신 분 코드가 전체적으로 아래와 같을 겁니다.
이렇게 바꾸어 보면 경고가 나지 않을겁니다
그런데, 모든 경우에 함수를 부르기전에 정의하는 것은 힘들므로
와 같이 합니다.
c언어 책에서 프로토타입 부분은 좀 더 참조하시기 바랍니다.
고맙습니다...^^
...^^;
댓글 달기