#include
#define
#ifdef
#pragma once처럼 앞에 #이 붙은 것이 보통 전처리기이다.
#define이나 macro로 정의하기보다는
constexpr를 사용하거나 관련된 STL을 사용하는 것이 좋다.
predefined macros
__FILE__
처럼 미리 선언된 명령어들이 있다.
#include <>는 STL을 사용할 때
#include ""는 유저가 만든 헤더를 사용할 때
실수로 한 헤더를 여러번 #include하는 경우가 있다
이럴 때
//CAT_H가 선언되지 않았다면
#ifndef CAT_H
//CAT_H를 선언한다
#define CAT_H
class Cat {
public:
void speak();
};
#endif
헤더가 이미 선언되어있는지 if문을 사용해 체크하여 재정의 문제를 해결할 수 있다.
#include는 기본적으로 복사 붙여넣기인데 헤더파일이 2번 이상 들어가는 것을 방지하기 위해
#pragma once나 #ifndef를 사용한다.