사용자:Ruin/작성중/쉽게 배우는 C++ 레퍼런스: 두 판 사이의 차이

잔글 (→‎linkage)
잔글 (→‎심볼)
158번째 줄: 158번째 줄:


== 심볼 ==
== 심볼 ==
키워드의 반대 개념이다. 이름과 같은 개념이라고 생각하면 된다.
== 모듈 ==
== 모듈 ==
== linkage ==
== linkage ==

2015년 7월 23일 (목) 16:59 판

API 레퍼런스처럼 기초 개념을 쉽게 참고할 수 있게 작성된 페이지이다.

키워드

+ 는 C++11에서 추가된 키워드, * 는 C++11에서 의미가 변한 키워드이다.

  • alignas +
  • alignof +
  • and
  • and_eq
  • asm
  • auto *
  • bitand
  • bitor
  • bool
  • break
  • case
  • catch
  • char
  • char16_t +
  • char32_t +
  • class
  • compl
  • const
  • constexpt +
  • const_cast
  • continue
  • decltype +
  • default *
  • delete *
  • do
  • double
  • dynamic_cast
  • else
  • enum
  • explicit
  • export *
  • extern
  • false
  • float
  • for
  • friend
  • goto
  • if
  • inline
  • int
  • long
  • mutable
  • namespace
  • new
  • noexcept +
  • not
  • not_eq
  • nullptr +
  • operator
  • or
  • or_eq
  • private
  • protected
  • public
  • register
  • reinterpret_cast
  • return
  • short
  • signed
  • sizeof
  • static
  • static_assert +
  • static_cast
  • struct
  • switch
  • template
  • this
  • thread_local +
  • throw
  • true
  • try
  • typedef
  • typeid
  • typename
  • union
  • unsigned
  • using *
  • virtual
  • void
  • volatile
  • wchar_t
  • while
  • xor
  • xor_eq

코드의 구조

파일 단위

  • 소스파일: 정의부, 구현부
    • 헤더파일: 선언부
  • 리소스파일: 프로그램의 논리와 무관한 데이터(이미지, 영상 등등)

구역 단위

변수나 함수, 상수 등이 (메모리상에) 존재하는 범위를 구역이라고 한다.

  • 파일 외부: 다른 헤더파일이나 소스파일
  • 파일 내부
    • 글로벌: 그 파일 전체
    • 로컬: for, while, if, class, 함수 등의 블럭({}) 내부
    • 이름공간

문장 단위

문장의 몸체부 뒤에 ';'이 붙는 구조이다. 몸체부는 키워드, 변수, 상수, 연산자의 조합으로 이루어진다.

프로그램의 빌드과정

  1. 전처리
    전처리 명령어나 매크로를 소스코드로 바꾸어준다.
  2. 컴파일
    전처리 과정이 끝난 각각의 소스파일의 코드를 어셈블리 코드로 변환한다.
  3. 오브텍트 파일 생성
    어셈블리 코드를 기계어로 바꾼다.
  4. 링크
    여러개의 오브젝트 파일을 하나로 링크해서 실행파일로 만든다.

시점(타임)

  • 컴파일타임
    컴파일 과정 전체를 컴파일타임이라고 한다.
  • 링크타임
    링크 과정 전체를 링크타임이라고 한다. 잘 쓰이지 않는 용어이지만, 이 때 골치아픈 에러가 발생하기도 한다.
  • 런타임
    프로그램의 실행과정 전체를 런타임이라고 한다. 이 때 발생하는 에러는 치명적이다.

선언과 정의

선언은 프로그램에게 이름을 알려주기만 한다. 정의는 선언된 것의 해석을 단 하나로 단정시킨다.

전처리 명령어

조건부 컴파일

  • #if
  • #ifdef
  • #ifndef
  • #elif
  • #else
  • #endif

치환

  • #define
  • #undef

포함

  • #include

에러

  • #error

기능 지시

  • #pragma
  • _Pragma

파일 이름과 특정 줄의 정보

  • #line

심볼

키워드의 반대 개념이다. 이름과 같은 개념이라고 생각하면 된다.

모듈

linkage

외부

내부

기본 문법

변수와 메모리

타입

입출력

연산자

타입 캐스팅

조건문

반복문

함수

디버깅

객체지향 프로그래밍

구조체

공용체

열거형

클래스

연산자 오버로딩