본문 바로가기
프로그래밍언어/C언어[Error]

[C언어][Error] 051. unknown type name ‘foobar’ – 정의되지 않은 사용자 타입 사용

by about_IT 2025. 4. 28.

이 오류는 코드에서 사용한 타입 이름이 컴파일러에 의해 인식되지 않는 경우 발생합니다. 즉, 'foobar'라는 타입이 선언되거나 정의된 적이 없음에도 이를 변수나 함수 선언에 사용하려고 할 때 컴파일러는 알 수 없는 타입이라고 판단하고 오류를 출력합니다.


주로 타이핑 실수, 헤더 파일 누락, typedef 정의 생략 등이 원인입니다.



● 오류 예제

foobar x;  // 오류: foobar 타입이 정의되지 않음

컴파일 시 다음과 같은 오류 메시지가 출력됩니다.

error: unknown type name ‘foobar’


● 해결 방법

사용하려는 타입이 올바르게 정의되어 있는지 확인하고, 누락된 typedef나 구조체 정의, 헤더 파일을 포함시켜야 합니다. 다음은 typedef를 사용한 예시입니다.

typedef int foobar;

int main() {
    foobar x = 5;
    printf("%d\n", x);
    return 0;
}

출력 결과:

5


● 실전 팁

  • 타입 이름에 오타가 없는지 확인하세요.
  • 사용하려는 타입이 typedef나 구조체 등으로 미리 정의되어 있어야 합니다.
  • 필요한 정의가 다른 파일에 있다면 해당 헤더 파일을 반드시 include 하세요.

C언어는 모든 타입이 미리 정의되어 있어야 하며, 정의되지 않은 타입을 사용하는 것은 문법적으로 허용되지 않습니다. 정확한 타입 선언과 적절한 헤더 포함을 통해 이러한 오류를 방지할 수 있습니다.