mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Thursday, December 28, 2006

C언어] return 0; return 1; return -1; 의 뜻 의미, 사용법 예제


return (리턴) 이라는 것은 함수가 아니라, C언어의 키워드(예약어)입니다. 현재의 함수를 종료시키고 그 함수를 호출했던 곳으로 되돌아가라는 뜻입니다. 단, 돌아가며 어떤 값을 가지고 갈 수 있습니다. 즉, 값을 반환하는 것입니다.

예를 들어 다음과 같은 소스가 있다고 할 때

파일명: 0.cpp
#include <stdio.h>

int foo(void);


int main(void) {

  printf("%d\n", foo());

  return 0;
}


int foo(void) {
  return 1234;
}


컴파일을 하고 실행하면
D:\Z>cl /nologo 0.cpp && 0.exe
0.cpp
1234

D:\Z>

이렇게 1234 라는 값이 출력됩니다.

foo()라는 함수가, 자신을 호출한 printf() 함수에 1234 라는 값을 리턴했기 때문입니다. int foo... 라고 되어 있기에, 정수(int)만을 반환할 수 있습니다.

그리고 프로그램 본체인 main() 함수 역시 return 0; 를 사용하여 어딘가로 0 이라는 값을 돌려주고 있습니다. main() 함수의 return문은 "운영체제"로 값을 반환합니다. MS윈도우XP에서 위의 예제 프로그램을 실행했다면, 윈도우XP의 명령 프롬프트(cmd.exe)로 0이라는 값을 반환하는 것입니다.


왜 return 0; 이렇게 0 이라는 값을 반환했느냐 하면, "에러가 없이 정상적으로 프로그램이 종료되었다"는 뜻입니다.

만약 main() 에서 무슨 에러가 있었다면 0이 아닌 값, 예를 들어 1이나 2 또는 -1 등을 윈도우로 반환해야 합니다.

보통 함수에서는 그 함수가 하는 일에 따라서 리턴 값이 달라지지만, main() 함수에서는 되도록 위의 규칙에 맞게 반환값을 정해야 합니다.

그렇지 않으면, 그 프로그램을 배치 파일(BATCH; .BAT) 등에서 사용할 때 문제가 생길 수 있습니다.

배치 파일 안에서는, 방금 실행한 프로그램이 성공적으로 종료되었는지 아닌지 판단하기 위해, 그 프로그램의 반환값을 사용합니다. 반환값이 0이면 그 프로그램이 성공적으로 종료되었다고 판단하고 그 다음 작업을 계속합니다. 0 이 아니면 에러가 있다는 뜻이니까, 에러에 대한 적절한 처리를 해야 합니다. (▶▶ [배치 파일] 프로그램 실행의 성공 여부를 Error Level 로 확인/판단하기: ERRORLEVEL 참고)


여기에도 return문에 대한 설명이 있습니다: ▶▶ [C언어 기초] return 이란? 함수인가요? return 0; 의 의미는?




tag: cpp
C언어 | C/C++ (Visual C++) 프로그래밍

0 Comments:

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top