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

[C언어][Error] 077. expected ',' or '...' before parameter – 함수 인자 선언 누락

by about_IT 2025. 5. 2.

이 오류는 함수 선언이나 정의에서 매개변수 목록 중 하나가 잘못 작성되었을 때 발생합니다. 특히 함수 인자 중 하나에 자료형은 명시되어 있지만 변수명이 없거나, 쉼표(,) 또는 가변 인자(...) 앞에서 선언 형식이 어색한 경우 컴파일러가 문법 오류로 인식합니다.


주로 복잡한 함수 선언을 하거나, 가변 인자 함수(printf 등)를 정의할 때 이 오류가 자주 발생합니다.



● 오류 예제

#include <stdio.h>

void printValues(int, ) {  // 오류: 변수 이름 없이 쉼표로 끝남
    printf("값을 출력합니다.\n");
}

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

error: expected ',' or '...' before ')' token


● 해결 방법

모든 매개변수는 자료형과 변수명이 명확히 작성되어야 하며, 쉼표 또는 가변 인자 기호 앞에는 올바른 인자 형식이 와야 합니다.

#include <stdio.h>

void printValues(int x) {
    printf("x = %d\n", x);
}

int main() {
    printValues(5);
    return 0;
}

출력 결과:

x = 5


● 실전 팁

  • 모든 함수 인자는 자료형 + 변수명 형식으로 작성해야 합니다.
  • 가변 인자 함수에서는 ... 앞에 올바른 매개변수가 있어야 합니다.
  • 복잡한 함수 선언일수록 각 인자의 형식을 다시 한번 점검하는 습관을 가지세요.

C언어 함수 선언은 매우 엄격한 문법을 따르므로, 매개변수 선언 시 생략이나 부정확한 형식을 사용하지 않도록 주의해야 하며, 오류 발생 시 인자 목록 전체를 꼼꼼히 검토하는 것이 중요합니다.