Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 스택
- 벡터
- 힙영역
- MonoBehaviour
- thread
- map
- vector
- 트리
- rookiss
- std::unordered_map
- 해쉬맵
- list
- 배열
- 객체지향
- 차이점
- 리스트
- 반복문
- Queue
- 공부
- 프래그멘테이션
- c#
- 자료구조
- 기술면접
- std::map
- 인프런
- 알고리즘
- static_cast
- 스택영역
- 큐
- 멀티쓰레드
Archives
- Today
- Total
호빵의 IT 개발소
컴파일 순서 본문
컴파일러가 소스 코드를 실행 가능한 바이너리로 바꾸는 과정은 보통 다음 네 단계로 나뉜다:
|
면접 스타일 답변 예시:
컴파일은 보통 네 단계로 이루어집니다.
첫 번째는 전처리 단계로 #include나 #define 같은 전처리 지시문을 처리하고 매크로 치환이 이뤄집니다.
두 번째는 컴파일 단계로 전처리된 코드가 어셈블리 코드로 변환되며 문법 체크와 최적화도 함께 수행됩니다.
세 번째는 어셈블 단계로 어셈블리 코드가 기계어로 번역되어 오브젝트 파일이 만들어집니다.
마지막으로 링크 단계에서는 여러 오브젝트 파일과 라이브러리를 묶어서 하나의 실행 파일을 생성합니다.
이렇게 분리된 과정 덕분에 각 단계별로 오류를 추적하거나 빌드 최적화를 적용할 수 있다는 장점이 있습니다.
'CS(전공지식) > 기술면접 준비' 카테고리의 다른 글
| 람다식(Lambda)이란? (0) | 2025.04.01 |
|---|---|
| 델리게이트(Delegate)란? (0) | 2025.04.01 |
| 동적할당이란? (0) | 2025.04.01 |
| 정적할당이란? (0) | 2025.04.01 |
| 크리티컬 섹션이란? (0) | 2025.04.01 |
Comments