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

[C언어][Error] 065. expected identifier or ‘(’ before numeric constant – 식별자 없이 숫자 시작

by about_IT 2025. 4. 29.
728x90

이 오류는 함수 정의나 선언, 매크로 사용 시 숫자 상수 앞에 식별자나 괄호가 필요할 때 발생합니다. 즉, 함수 이름이나 변수 이름 없이 숫자가 바로 나오는 경우, 컴파일러는 해당 숫자를 해석할 수 없어 문법 오류를 발생시킵니다.


주로 매크로 정의에서 실수하거나, 함수 선언을 잘못 작성했을 때 발생합니다.



● 오류 예제

#include <stdio.h>

int main() {
    5(3);  // 오류: 숫자 앞에 함수 식별자 없음
    return 0;
}

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

error: expected identifier or ‘(’ before numeric constant


● 해결 방법

숫자는 함수처럼 사용할 수 없으므로 반드시 함수 이름(식별자)이나 매크로 이름이 먼저 와야 합니다. 아래는 함수 선언을 잘못 매크로처럼 작성한 경우의 수정 예시입니다.

#include <stdio.h>

#define SQUARE(x) ((x)*(x))

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

출력 결과:

25


● 실전 팁

  • 숫자 상수 앞에 함수명이나 변수명이 없이 괄호를 사용하는 것은 문법 오류입니다.
  • 매크로 사용 시에도 숫자만 남지 않도록 괄호와 식별자 구성에 주의하세요.
  • 컴파일 오류 메시지에서 "numeric constant"가 포함되면 숫자 주변 문법을 먼저 확인하세요.

C언어는 숫자를 직접 함수처럼 사용할 수 없으며, 항상 식별자나 괄호 구조가 있어야 문법적으로 완성됩니다. 문법 구조를 올바르게 기억하고 사용해야 오류를 줄일 수 있습니다.

728x90