본문 바로가기
개발이슈, 버그모음/c++ or VSCommunity

매크로 선언 오류

by 유잉유잉유잉 2025. 1. 1.
728x90

오류목록 


오류(활성) E0077 이 선언에는 스토리지 클래스 또는 형식 지정자가 없습니다. 
오류(활성) E0065 ';'가 필요합니다.

오류 C4430 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다.

오류 C2146 구문 오류: ';'이(가) 'Type' 식별자 앞에 없습니다.
오류 C2825 'Type': '::'가 뒤에 나오면 클래스 또는 네임스페이스여야 합니다. 
오류 C2510 'Type': '::' 왼쪽은 클래스/구조체/공용 구조체이어야 합니다.
오류 C2143 구문 오류: ';'이(가) 'CGameManager::{ctor}' 앞에 없습니다.
오류 C4430 형식 지정자가 없습니다. int로 가정합니다. 참고: C++에서는 기본 int를 지원하지 않습니다. 

해당 매크로를 사용하는 부분, 사용 후 다음 줄에서 에러가 출력되었다.

 

찾다보니...

#define DEFINITION_SINGLE (Type) Type* Type::mInst = nullptr;

매크로선언시 인자를 받는 부분에 띄어쓰기가 들어가서 생긴 문제였다..

#define DEFINITION_SINGLE(Type) Type* Type::mInst = nullptr;

띄어쓰기를 없얘니 해결됨.... 

 

 

테스트해보니

사용할때는 디파인명과 괄호 사이에 띄어쓰기를해도 문제가 없다.

정의할때만 조심해야할 듯 하다 

 

 

⭐ 추가로 매크로 한개를 여러 줄로 정의할 때 \를 사용하는데 

\뒤에 공백이 들어갈 경우에도 에러가 난다.. 🥲🥲

 

 

매크로 사용시 유의해야겠다🥲🥲

728x90

댓글