잔글 (→linkage) |
잔글 (→심볼) |
||
158번째 줄: | 158번째 줄: | ||
== 심볼 == | == 심볼 == | ||
키워드의 반대 개념이다. 이름과 같은 개념이라고 생각하면 된다. | |||
== 모듈 == | == 모듈 == | ||
== linkage == | == linkage == |
2015년 7월 23일 (목) 16:59 판
API 레퍼런스처럼 기초 개념을 쉽게 참고할 수 있게 작성된 페이지이다.
키워드
+ 는 C++11에서 추가된 키워드, * 는 C++11에서 의미가 변한 키워드이다.
|
|
|
코드의 구조
파일 단위
- 소스파일: 정의부, 구현부
- 헤더파일: 선언부
- 리소스파일: 프로그램의 논리와 무관한 데이터(이미지, 영상 등등)
구역 단위
변수나 함수, 상수 등이 (메모리상에) 존재하는 범위를 구역이라고 한다.
- 파일 외부: 다른 헤더파일이나 소스파일
- 파일 내부
- 글로벌: 그 파일 전체
- 로컬: for, while, if, class, 함수 등의 블럭(
{}
) 내부 - 이름공간
문장 단위
문장의 몸체부 뒤에 ';'이 붙는 구조이다. 몸체부는 키워드, 변수, 상수, 연산자의 조합으로 이루어진다.
프로그램의 빌드과정
- 전처리
- 전처리 명령어나 매크로를 소스코드로 바꾸어준다.
- 컴파일
- 전처리 과정이 끝난 각각의 소스파일의 코드를 어셈블리 코드로 변환한다.
- 오브텍트 파일 생성
- 어셈블리 코드를 기계어로 바꾼다.
- 링크
- 여러개의 오브젝트 파일을 하나로 링크해서 실행파일로 만든다.
시점(타임)
- 컴파일타임
- 컴파일 과정 전체를 컴파일타임이라고 한다.
- 링크타임
- 링크 과정 전체를 링크타임이라고 한다. 잘 쓰이지 않는 용어이지만, 이 때 골치아픈 에러가 발생하기도 한다.
- 런타임
- 프로그램의 실행과정 전체를 런타임이라고 한다. 이 때 발생하는 에러는 치명적이다.
선언과 정의
선언은 프로그램에게 이름을 알려주기만 한다. 정의는 선언된 것의 해석을 단 하나로 단정시킨다.
전처리 명령어
조건부 컴파일
#if
#ifdef
#ifndef
#elif
#else
#endif
치환
#define
#undef
포함
#include
에러
#error
기능 지시
#pragma
_Pragma
파일 이름과 특정 줄의 정보
#line
심볼
키워드의 반대 개념이다. 이름과 같은 개념이라고 생각하면 된다.