이 오류는 함수 선언 또는 정의에서 매개변수 선언 형식이 누락되었거나 잘못 작성되었을 때 발생합니다. C언어에서는 함수의 매개변수를 선언할 때 반드시 형(type)과 변수명을 명시해야 하며, 그 중 하나라도 빠질 경우 컴파일러가 문법 오류를 발생시킵니다.
특히 함수 선언 시 괄호 안이 비어 있거나, 변수명 또는 타입이 생략된 경우 이 오류가 발생할 수 있습니다.
● 오류 예제
#include <stdio.h>
void print_sum(int , ); // 오류: 매개변수 선언이 불완전함
int main() {
print_sum(3, 5);
return 0;
}
컴파일 시 다음과 같은 오류 메시지를 출력합니다.
error: expected parameter declarator
● 해결 방법
모든 매개변수는 타입과 변수명을 함께 명시해야 하며, 생략된 부분 없이 정확한 선언을 해야 합니다.
#include <stdio.h>
void print_sum(int a, int b) {
printf("합계: %d\n", a + b);
}
int main() {
print_sum(3, 5);
return 0;
}
출력 결과:
합계: 8
● 실전 팁
- 함수 선언 시 매개변수의 타입과 이름을 모두 명확히 작성해야 합니다.
- 컴파일러는 매개변수 선언이 불완전하면 함수 인터페이스를 이해할 수 없기 때문에 오류를 발생시킵니다.
- 함수 정의와 선언이 분리되어 있을 경우, 양쪽 모두 정확히 일치하는 선언을 유지하세요.
C언어는 정형화된 문법을 요구하기 때문에 함수의 매개변수 선언도 예외 없이 완전해야 합니다. 누락 없이 올바른 선언을 통해 인터페이스의 명확성과 코드의 안전성을 확보할 수 있습니다.