본문 바로가기
프로그래밍학습/MFC

error C2143: 구문 오류 : ';'이(가) '*' 앞에 없습니다.

by 해리보쉬 2021. 5. 11.
728x90
반응형

요즘 받아서 쓰는 설비의

포인터가 사방으로 날아다니고 그런 포인터를 정리해서 모아서 정리한 포인터가 또 있는데

뭐가 어디 하위로 배치되어있는 지 일일히 알아보기도 귀찮아서

대강 필요한 코드가 들어있는 헤더를 include 해서 썼더니

저런 문제가 자꾸 발생했습니다.

일반 적으로 알려진 해결법

1.#paragma once

헤더 선언 시 제일 윗줄에 이 문구를 넣으면 된다고들 하는데 실제로 이렇게 간단하게 해결 되는 경우는

잘 없드라구요

한번만 인클루드 하게 해주는 경우로 해당 헤더 내에서만 제대로 작동하는 것 같습니다.

2.클래스 간 include 관계 수정

사실 이게 제일 많은 경우일 것입니다.

부모 클래스 쪽 헤더나 UI에서 받아온 헤더로 사용하는 하위 헤더끼리 또 서로 include하면서 참조하는 경우

양쪽이 서로 include하는 경우가 있는지 찾아봅시다.

이게 간단히 찾을 것 같지만 프로그램의 구조가 복잡해지면

또 잠시 일부만 고치면 되는데 일일히 다 살펴보기 귀찮을 때 적당히 include해서 쓰려다가 이런문제가

종종 발생하드라구요

그럼 빌드하면 갑자기 에러 막 90개씩 뜹니다. 이 포스트 제목같은 에러가요

그러면서 특정 클래스의 포인터가 갑자기 인식 안되고 그럽니다.(밑에 빨간줄)

(이미지 출처 티스토리 에움길 님:https://conservative-vector.tistory.com/entry/error-C2143-%EA%B5%AC%EB%AC%B8-%EC%98%A4%EB%A5%98-%EC%9D%B4%EA%B0%80-%EC%95%9E%EC%97%90-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4)

728x90
반응형

댓글