C++에서는 선언(declaration)과 정의(definition)를 구분합니다:선언: 컴파일러에게 이름과 타입을 알려주는 것정의: 실제 메모리 할당이 이루어지는 것 1. #define을 지양해야 하는 이유들1-1. 컴파일 곤란#define ASPECT_RATIO 1.653 만약 이러한 코드를 쓰게 된다면 우리는 ASPECT_RATIO라는 이름으로 쓰지만 컴파일러는 이를 전부 1.653으로 인식하게 됩니다. 컴파일러로 넘어가기 전 선행처리자가 전부 1.653으로 바꾸어 버리기 때문입니다. 만약에 이부분에서 컴파일 에러가 발생하면 1.653이 에러메시지에 떠서 문제를 찾기 어려워질 수 있습니다. 매크로 상수는 기호 테이블에 기록되어 있지 않습니다. 그저 1.653으로 대체되어서 컴파일 될뿐입니다. 해결책..