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

[C언어][Error] 028. expected expression before ‘)’ token – 괄호 앞에 식이 없음

by about_IT 2025. 4. 24.

이 오류는 괄호 내부에 들어가야 할 표현식(expression)이 누락되었거나, 괄호 앞에 문법적으로 잘못된 요소가 있을 때 발생합니다. 특히 조건문이나 반복문에서 괄호만 쓰고 내부에 조건식을 넣지 않았을 경우, 컴파일러는 괄호 앞 또는 안에 유효한 표현식을 기대하다가 오류를 출력하게 됩니다.

 

예를 들어 if (), while () 처럼 괄호 안이 비어 있거나, 매크로/함수 호출에서 괄호가 열리고 닫히기만 하고 그 사이에 아무 값도 없을 경우에도 이 오류가 발생할 수 있습니다.

 


● 오류 예제

#include <stdio.h>

int main() {
    if () {  // 오류: 조건식이 없음
        printf("조건문 실행\n");
    }
    return 0;
}

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

error: expected expression before ‘)’ token

 


● 해결 방법

괄호 안에는 반드시 유효한 조건식 또는 표현식을 작성해야 합니다. 아래는 수정된 예시입니다.

#include <stdio.h>

int main() {
    int x = 1;
    if (x == 1) {
        printf("조건문 실행\n");
    }
    return 0;
}

출력 결과:

조건문 실행

 


● 실전 팁

  • 조건문, 반복문, 함수 호출에서 괄호 내부는 항상 비워두지 않도록 주의하세요.
  • if, while, switch 등에서 괄호 안은 필수입니다. 빈 괄호는 문법 오류를 유발합니다.
  • 매크로나 함수가 인자를 필요로 할 경우, 호출 시 인자 전달을 빠뜨리지 마세요.

 

C언어에서 괄호는 논리 구조의 핵심 요소이므로, 항상 유효한 표현식이 들어가야 문법 오류를 방지할 수 있습니다. 괄호를 사용할 때는 항상 내부에 들어갈 내용을 먼저 채우는 습관을 들이세요.