프로그래밍언어/C언어[Error]

[C언어][Error] 005. implicit declaration of function ‘printf’ – printf 함수 선언 누락

about_IT 2025. 4. 22. 23:22

이 오류는 printf와 같은 표준 라이브러리 함수를 사용하는데 해당 함수에 대한 선언을 포함하지 않았을 때 발생합니다. C언어에서 함수는 호출 전에 반드시 선언되어 있어야 하며, 이를 포함하지 않으면 암시적 선언(implicit declaration)으로 간주되어 컴파일 에러가 발생합니다.


보통 stdio.h 헤더 파일을 포함하지 않고 printf를 호출할 때 자주 발생하며, 그 외에도 다른 표준 함수들 사용 시 같은 원인으로 문제가 생길 수 있습니다.


다음은 잘못된 예시입니다.

int main() {
    printf("Hello, world!\n");
    return 0;
}

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

implicit declaration of function ‘printf’

해결 방법은 간단합니다. stdio.h 헤더를 포함해 주면 됩니다.

#include <stdio.h>

int main() {
    printf("Hello, world!\n");
    return 0;
}

정상적으로 컴파일되며 출력 결과는 다음과 같습니다.

Hello, world!

● 실전 팁

  • 표준 라이브러리 함수를 사용할 때는 해당 헤더 파일을 항상 포함하세요.
  • 암시적 선언 경고는 C99 이후 표준에서 에러로 간주되므로 반드시 수정이 필요합니다.
  • 컴파일러의 경고 메시지를 무시하지 말고, 원인을 정확히 파악하여 해결하세요.

함수를 호출하기 전에 선언이 필요하다는 C언어의 원칙을 잘 이해하고, 항상 필요한 헤더 파일을 명확히 포함하는 습관을 들이는 것이 중요합니다.