프로그래밍/C,C++

[C/C++] main함수 및 커스텀 함수 위치 및 전방선언

gameObject 2023. 5. 31. 20:02
728x90

Main 함수와 커스텀 함수의 위치, 함수 전방선언

C++ 프로젝트를 생성해보면 int main()함수가 만들어져 있습니다. (물론 Hello world와 함께^^)

 

main함수 특징

1. 프로그램 실행을 위한 시작 지점의 역할을 합니다.

2. 일반적으로 프로그램의 다른 함수로 호출을 보내 프로그램 실행을 제어합니다.

3. 다른 모든 C언어 함수와는 다른 제한이 존재합니다.

 - inLine으로 선언할 수 없다.

 - static으로 선언할 수 없다.

 - 주소를 사용할 수 없다.

 - 프로그램에서 호출할 수 없다.

(현재 실력에서는 프로그램에서 호출할 수 없다만 이해했습니다..)

4. 마지막으로 main함수는 일반적으로 main에서 반환하거나 그 끝에 도달할 때 실행을 중지시키지만, exit함수를 사용하여 강제로 종료를 시킬 수 도 있습니다.

여기서 새로운 함수를 만든다고 한다면 그 함수의 위치는

#include <iostream> 아래, main함수 위가 되어야 컴파일러에서 제대로 읽고 동작한다.

하지만 저 위치에 여러개의 함수를 넣다보면(예를들면 50개 함수?), main함수가 굉장히 아래쪽으로 가서 찾기가 어려워 질 것이다.

또한 어떤 함수들이 있는지 한눈에 알아보기 어려워서 찾아서 이용하기도 어려울 확률이 높아진다.

 

그렇기 때문에 함수를 만든것을 컴파일러에게 미리 알려주는 행동을 하는데, 그것을 프로토타입 or 전방선언이라고 한다.

다음과 같다.

#include와 main함수 사이에 한 문장이 더 추가된것을 볼 수 있다. 이것이 전방선언(프로토타입)이다.

프로토타입은 다른 많은 용어로도 사용되니 전방선언(Forward Declaration)이라는 용어도 같이 기억해두자.

 

헤더파일

https://learn.microsoft.com/ko-kr/cpp/cpp/header-files-cpp?view=msvc-170

내가 이해한 내용을 설명하자면

우리가 프로그램을 구성할때, 예를들어 변수라면 먼저 변수에 대한 선언이 필요하다.

마찬가지로 프로그램을 만들때 많은 선언이 필요한데, 다양한 사람들이 만들게 되면 오류가 발생할 수 있다.

즉, 다양한 프로그래머들이 필요하고 유용한 선언들을 모아놓은 파일이 헤더파일이다.

또한 헤더파일은 말그대로 head위치, 가장 위쪽에 선언되면 된다.

 

 

728x90

'프로그래밍 > C,C++' 카테고리의 다른 글

[C/C++] 변수 기초 1(int, float)  (0) 2023.05.31
[C/C++] 연산자 기초  (0) 2023.05.31
[C/C++] 함수 기초 1  (0) 2023.05.30
C++과 C# 비교 차이점  (2) 2023.05.30
[오류_MAC] VS Code #include 오류가 검색되었습니다.  (0) 2023.05.29