일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- GPU
- C++
- swapchain
- vertex
- CPU
- c
- 다이렉트 초기화
- Input Assembler
- 다중표본화
- UE4
- 세팅
- DirectXTK
- DirectX12
- Direct3D
- Direct3D Init
- 프로그래밍
- 다이렉트X 튜토리얼
- 코딩
- 다이렉트X
- DESC
- 전처리문
- 게임수학
- CommandList
- 동기화
- C언어
- RenderTargetView
- Direct Init
- View
- engine
- DirectX
- Today
- Total
비타Cpp
main() 본문
#include <stdio.h>
int main()
{
printf("Hello, World \n");
return 0;
}
이번에는 main()과 그 내부에 있는 코드에 대해서 포스팅하겠습니다.
일단 먼저 main()은 프로그램의 시작점을 나타내는 함수입니다.
프로그램을 실행하면 일단 프로그램은 main을 찾아내고 그 안에 있는 코드를 실행시킵니다.
그렇기 때문에 프로그램은 무조건 한 개의 main을 가지고 있어야 합니다.
또한 이 main함수는 한 프로젝트 안에 여러 개를 가질 수 없습니다.
main2.c를 같은 프로젝트 안에 새롭게 만들어 main.c와 똑같이 main함수를 안에 넣어줍니다.
컴파일을 시키기 전까지는 오류 목록에는 이상이 없다고 나옵니다.
하지만, 빌드를 해보면
이렇게 빌드 오류가 발생합니다.
이제 무슨 오류가 나왔는지 한번 보죠.
이러한 오류들이 있는데 오류 코드를 보시면 LNK2005, LNK1169 같은 코드가 나옵니다.
오류가 발생했을 때 설명을 보고 해결해도 되지만 설명만으로 이해가 안 될 때는 구글에 해당 코드를 검색하여 자세히 알아볼 수 있습니다.
참고로 LNK관련 오류는 링크 단계에서 발생하는 문제의 오류코드입니다.
즉 컴파일까지는 정상적으로 되지만 컴파일로 만들어지는. obj파일들을 링크하는 단계에서 문제가 발생하는 것이죠.
main.obj에 _main이 정의가 되어있는데, main2.obj에서도 정의하려니까 발생하는 오류입니다.
그래서 main을 한쪽을 없애주시거나, 혹은 둘 중에 하나만 빌드를 하도록 해야 합니다.
그럼 문제의 main2를 빌드를 하지 않도록 설정해보겠습니다.
사진처럼 하고 나면 솔루션 탐색기에 main2.c가 빨간색으로 표시가 되어 있습니다.
이 표시는 빌드시 main2.c를 무시하는 것입니다.
그래서 다시 빌드를 해보시면!
main.c의 내용이 나오게 됩니다.
여기까지가 main() 함수의 설명이었고, 다음에는 출력문인 printf();에 대해서 다뤄보겠습니다.
'C,C++' 카테고리의 다른 글
변수(Variable)와 상수(Constant) - (1) (0) | 2019.10.23 |
---|---|
printf() (0) | 2019.10.21 |
#include - 전처리문 (0) | 2019.10.08 |
프로젝트 생성 및 간단한 코드 작성 (0) | 2019.09.15 |
통합개발환경(IDE) (0) | 2019.09.15 |