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

[C언어][Error] 066. expected '=', ',', ';', 'asm' or '__attribute__' before ')' token – 괄호 앞에 선언 오류

about_IT 2025. 4. 29. 00:26
728x90

이 오류는 함수 매개변수 선언이나 변수 선언 구문에서 문법적으로 잘못된 형태가 있을 때 발생합니다. 특히 괄호 앞에 =, ,, ; 등이 와야 하는데 누락되거나, 잘못된 식별자가 등장할 경우 컴파일러가 해당 오류 메시지를 출력합니다.


보통 함수 선언에서 매개변수 형식을 생략하거나, 매개변수 괄호 내부에 올바르지 않은 선언이 들어간 경우 발생합니다.



● 오류 예제

#include <stdio.h>

int add(int a, ) {  // 오류: 매개변수 형식 누락
    return a;
}

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

error: expected '=', ',', ';', 'asm' or '__attribute__' before ')' token


● 해결 방법

함수 매개변수는 모든 인자에 대해 타입과 이름이 명시되어야 하며, 누락 없이 작성해야 합니다. 아래는 오류를 수정한 예시입니다.

#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int main() {
    printf("%d\n", add(3, 4));
    return 0;
}

출력 결과:

7


● 실전 팁

  • 함수 선언 시 모든 매개변수는 타입과 이름이 모두 명확히 지정되어야 합니다.
  • 괄호 내부에서 쉼표(,) 뒤에는 반드시 유효한 선언이 이어져야 합니다.
  • 구문 오류 메시지가 ‘before ')' token’인 경우, 괄호 앞 선언을 집중적으로 확인하세요.

C언어에서는 함수 시그니처가 명확해야 하며, 매개변수 선언에서의 작은 실수가 전체 함수의 인식 오류로 이어질 수 있습니다. 괄호 앞뒤 선언 문법을 항상 정확히 작성하는 습관을 들이세요.

728x90