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

잔글 (→‎심볼)
잔글 (→‎함수)
 
(같은 사용자의 중간 판 8개는 보이지 않습니다)
161번째 줄: 161번째 줄:


== 모듈 ==
== 모듈 ==
관련된 데이터와 함수가 모여서 만들어진 것. class하고도 비슷하다.
== linkage ==
== linkage ==
심볼의 접근 범위에 관한 것을 나타내는 용어
=== 외부 ===
=== 외부 ===
외부에서도 접근이 가능한 심볼들
=== 내부 ===
=== 내부 ===
특정 파일 내부에서만 접근이 가능한 심볼들(글로벌 함수, 글로벌 변수, 글로벌 상수 등)


== 기본 문법 ==
== 기본 문법 ==
=== 변수와 메모리 ===
=== 변수와 메모리 ===
프로그램은 데이터를 메모리에 저장하고, 불러오고, 수정한다. 변수는 메모리를 추상화 한 것이다.
==== 타입 ====
==== 타입 ====
=== 입출력 ===
데이터의 종류를 타입이라고 한다.
 
데이터 타입의 종류는 다음과 같다.
* 기본 타입
** char
** unsigned char
** int
** unsigned int
** short
** unsigned short
** long
** unsigned long
** long long
** unsigned long long
** bool
** wchar_t
** float
** double
** long double
* 사용자 정의 타입
** struct, class
** union
** enum
** typedef
** template
* 유도 타입
** 레퍼런스
** 포인터
** 배열
** 함수
** 멤버 포인터
변경 속성의 종류는 다음과 같다.
* const
* volatile
* mutable
* signed
* unsigned
* static
 
=== 연산자 ===
=== 연산자 ===


=== 타입 캐스팅 ===
=== 타입 캐스팅 ===
=== 조건문 ===
=== 흐름제어 ===
=== 반복문 ===
 
==== 조건문 ====
==== 반복문 ====
 
=== 함수 ===
=== 함수 ===
==== 표준 C 라이브러리 ====
== 디버깅 ==
== 디버깅 ==



2015년 7월 27일 (월) 17:14 기준 최신판

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

심볼[편집 | 원본 편집]

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

모듈[편집 | 원본 편집]

관련된 데이터와 함수가 모여서 만들어진 것. class하고도 비슷하다.

linkage[편집 | 원본 편집]

심볼의 접근 범위에 관한 것을 나타내는 용어

외부[편집 | 원본 편집]

외부에서도 접근이 가능한 심볼들

내부[편집 | 원본 편집]

특정 파일 내부에서만 접근이 가능한 심볼들(글로벌 함수, 글로벌 변수, 글로벌 상수 등)

기본 문법[편집 | 원본 편집]

변수와 메모리[편집 | 원본 편집]

프로그램은 데이터를 메모리에 저장하고, 불러오고, 수정한다. 변수는 메모리를 추상화 한 것이다.

타입[편집 | 원본 편집]

데이터의 종류를 타입이라고 한다.

데이터 타입의 종류는 다음과 같다.

  • 기본 타입
    • char
    • unsigned char
    • int
    • unsigned int
    • short
    • unsigned short
    • long
    • unsigned long
    • long long
    • unsigned long long
    • bool
    • wchar_t
    • float
    • double
    • long double
  • 사용자 정의 타입
    • struct, class
    • union
    • enum
    • typedef
    • template
  • 유도 타입
    • 레퍼런스
    • 포인터
    • 배열
    • 함수
    • 멤버 포인터

변경 속성의 종류는 다음과 같다.

  • const
  • volatile
  • mutable
  • signed
  • unsigned
  • static

연산자[편집 | 원본 편집]

타입 캐스팅[편집 | 원본 편집]

흐름제어[편집 | 원본 편집]

조건문[편집 | 원본 편집]

반복문[편집 | 원본 편집]

함수[편집 | 원본 편집]

표준 C 라이브러리[편집 | 원본 편집]

디버깅[편집 | 원본 편집]

객체지향 프로그래밍[편집 | 원본 편집]

구조체[편집 | 원본 편집]

공용체[편집 | 원본 편집]

열거형[편집 | 원본 편집]

클래스[편집 | 원본 편집]

연산자 오버로딩[편집 | 원본 편집]