728x90
이 오류는 변수나 함수, 구조체 멤버 등을 선언할 때 타입 지정자(type specifier)를 생략하거나 잘못 작성했을 때 발생합니다. C언어에서는 모든 선언에 자료형이 명시되어야 하며, int
, char
, float
등의 타입을 선언 없이 식별자만 작성하는 경우 컴파일러는 문법 오류를 발생시킵니다.
이 오류는 변수 선언뿐만 아니라 함수 반환형 또는 매개변수 선언에서 타입이 누락된 경우에도 자주 발생합니다.
● 오류 예제
#include <stdio.h>
main() { // 오류: 반환형 누락 (현대 C에서는 int 명시 필수)
x = 5; // 오류: x의 타입 누락
return 0;
}
컴파일 시 다음과 같은 오류 메시지가 출력될 수 있습니다.
error: type specifier missing, defaults to ‘int’
● 해결 방법
모든 선언에는 타입을 명시해야 하며, 특히 함수와 변수는 컴파일러가 정확히 해석할 수 있도록 해야 합니다.
#include <stdio.h>
int main() {
int x = 5; // 타입 명시
printf("%d\n", x);
return 0;
}
출력 결과:
5
● 실전 팁
- 모든 선언에는 반드시 타입을 명시하세요.
- 현대 C 표준(C99 이후)에서는
main()
함수의 반환형도int
로 명시해야 합니다. - 헤더 파일 없이 외부 함수나 변수를 사용할 경우에도 타입을 반드시 선언하세요.
타입은 C언어의 기본 요소이며, 이를 생략할 경우 정의되지 않은 동작이나 오류가 발생할 수 있습니다. 항상 자료형을 명확하게 작성하는 습관을 들이세요.
728x90