Learning
레슨 8 / 8·15분

C/C++ 레퍼런스

C 표준 라이브러리 함수

  • — printf, scanf, fopen, fclose, fread, fwrite
  • — malloc, free, calloc, realloc, atoi, atof, rand, srand, exit
  • — strlen, strcpy, strncpy, strcmp, strcat, memcpy, memset
  • — sin, cos, tan, sqrt, pow, abs, ceil, floor, log
  • — isalpha, isdigit, isspace, toupper, tolower
  • — time, clock, difftime, strftime
  • — assert 매크로 (디버깅용)

C++ 표준 라이브러리 헤더

  • — cin, cout, cerr (입출력 스트림)
  • — string 클래스 (문자열 처리)
  • — 동적 배열 컨테이너
  • / — 연관 컨테이너 (키-값)
  • / — 집합 컨테이너
  • — sort, find, count, transform, accumulate 등
  • — unique_ptr, shared_ptr, weak_ptr
  • — optional (C++17)
  • — function, bind, 함수 객체
  • — 파일 입출력 (ifstream, ofstream)

포인터와 메모리 관리 요약

cpp
// ── C 스타일 메모리 관리 ──
int* arr = (int*)malloc(10 * sizeof(int));  // 할당
free(arr);                                   // 해제

// ── C++ new/delete ──
int* p = new int(42);       // 단일 객체
int* a = new int[10];       // 배열
delete p;                   // 단일 해제
delete[] a;                 // 배열 해제

// ── 스마트 포인터 (권장) ──
auto up = make_unique<int>(42);      // unique_ptr
auto sp = make_shared<int>(42);      // shared_ptr
weak_ptr<int> wp = sp;               // weak_ptr
// 스코프 벗어나면 자동 해제!

컴파일러 옵션과 빌드

c
// 컴파일 (터미널 명령어)
// C 컴파일
// gcc -o program main.c -Wall -Wextra

// C++ 컴파일 (C++17)
// g++ -o program main.cpp -std=c++17 -Wall -Wextra

// 디버그 빌드
// g++ -o program main.cpp -std=c++17 -g -O0

// 릴리스 빌드
// g++ -o program main.cpp -std=c++17 -O2

// 여러 파일 컴파일
// g++ -o game main.cpp player.cpp monster.cpp -std=c++17

자주 사용되는 연산자와 키워드

  • & — 주소 연산자 / 참조, * — 역참조 / 포인터 선언
  • -> — 포인터로 멤버 접근, :: — 스코프 결정 연산자
  • const — 상수, constexpr — 컴파일 타임 상수
  • virtual — 가상 함수, override — 오버라이드 명시
  • nullptr — null 포인터 (C++11, NULL 대신 사용)
  • auto — 타입 추론, decltype — 표현식의 타입 추출
  • static_cast, dynamic_cast, reinterpret_cast — 타입 변환
  • noexcept — 예외를 던지지 않음을 명시
💡

공식 레퍼런스 사이트: cppreference.com은 C/C++ 표준 라이브러리의 가장 정확한 레퍼런스입니다. cplusplus.com은 예제가 풍부하여 초보자에게 적합합니다.