return - 함수 종료
return 은 함수 종료를 의미한다.
함수 마지막에 리턴값을 반환할 때도 있고, 아닐 때도 있지만 어떤 함수에서든 return 키워드를 사용하면 해당 함수를 종료하고, 함수를 호출한 곳으로 jump 한다.
exit - 프로그램 종료
exit() - 프로그램 종료를 의미한다.
어떤 함수 안이든, 프로그램 내의 어느 부분이든 호출 위치와 관계없이 exit() 함수를 호출하면 프로그램이 종료된다.
main 함수 내에서는 return, exit() 둘의 기능이 같다.
배경 1. return 키워드를 사용하면 해당 함수를 종료하고, 함수를 호출한 곳으로 jump 한다.
배경 2. 프로그램을 실행하면 main 함수부터 실행되는 것으로 알고 있으나 이것 이전에 스타트업 코드라는 것이 있는데, 스타트업 코드는 프로그램이 작동될 수 있도록 여러 초기화 작업과 프로그램이사용할 메모리(사용자공간의 코드영역,데이터영역, 힙영역, 스택영역)를 할당해주는 등 준비과정을 수행한 후에 마지막으로 main을 호출한다.
배경 3. main()에서 return을 하게 될 경우 main()을 호출한 스타트업코드로 돌아가 메인호출 뒷부분이 실행된다. 그리고 main()을 실행하던 쓰레드가 종료되면서 프로세스가 종료된다.
결론: 메인 함수 내에서 return 을 하게 되면 main함수를 종료하고, main함수를 호출한 곳으로 점프하는데, 이것이 스타트업 코드의 뒷부분이고, 스타트업 코드의 뒷부분 마지막에 exit() 이 있어 프로그램이 전체 종료된다. 그러므로 main함수 내에서는 return과 exit의 기능이 같다.
# 여러 인터넷을 뒤지고 지인에게 물어보며 궁금증을 해소한 것이라 사실과 다를 수 있습니다....
'구름같은 개념 확실히 잡기' 카테고리의 다른 글
내가 이해한 UseCase - 유스케이스 개념과 작성과정 (0) | 2024.09.15 |
---|---|
바이너리 파일이란? (0) | 2024.03.19 |