728x90
이 오류는 구조체나 공용체 정의 시 멤버 변수 앞에 자료형을 지정하지 않았을 때 발생합니다. C언어에서는 구조체 내에 선언되는 각 멤버에 대해 반드시 자료형을 명시해야 하며, 이를 specifier-qualifier-list라고 부릅니다. 이 리스트가 생략되면 컴파일러는 해당 멤버를 해석할 수 없어 오류를 발생시킵니다.
이 오류는 주로 자료형을 빼먹었거나, 잘못된 식별자 또는 오타가 있는 경우에 발생합니다.
● 오류 예제
struct Student {
name; // 오류: 자료형 누락
};
컴파일 시 다음과 같은 오류 메시지가 출력됩니다.
error: expected specifier-qualifier-list before ‘name’
● 해결 방법
구조체의 모든 멤버는 자료형과 함께 선언되어야 하며, 이름만 작성하는 것은 허용되지 않습니다. 아래는 수정된 예시입니다.
struct Student {
char* name; // 자료형 명시
};
● 실전 팁
- 구조체 또는 공용체 내부에서는 모든 멤버에 자료형을 반드시 붙이세요.
- 오타나 예약어 충돌 등으로 식별자가 자료형으로 인식되지 않을 수 있으니 주의하세요.
- 자료형을 정의하기 전에 typedef 또는 struct 정의가 먼저 필요할 수도 있습니다.
C언어에서 구조체 멤버 선언은 자료형과 식별자가 모두 명확해야 하며, 생략된 자료형은 컴파일 오류로 이어집니다. 선언 형식을 정확히 숙지하고 일관된 방식으로 작성하는 습관이 중요합니다.
728x90