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

[C언어][Error] 027. invalid use of void expression – void 값을 연산에 사용하려 함

by about_IT 2025. 4. 24.

이 오류는 반환형이 void인 함수를 연산식 또는 대입문에 사용하려 할 때 발생합니다. void 함수는 값을 반환하지 않으므로, 그 결과는 변수에 저장하거나 다른 값과 연산에 사용할 수 없습니다.

 

특히 printf와 같은 함수 안에 void 함수를 넣거나, void 함수의 결과를 대입하려 할 때 자주 발생합니다.

 


● 오류 예제

#include <stdio.h>

void greet() {
    printf("Hello\n");
}

int main() {
    int x = greet();  // 오류: void 함수는 값을 반환하지 않음
    return 0;
}

또는 다음과 같이 void 함수의 결과를 연산에 사용하려고 하면 오류가 발생합니다.

int y = greet() + 1;  // 오류 발생

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

error: invalid use of void expression

 


● 해결 방법

void 함수는 단순히 실행만 하고 값을 반환하지 않기 때문에, 반드시 독립적으로 호출해야 합니다.

#include <stdio.h>

void greet() {
    printf("Hello\n");
}

int main() {
    greet();  // 올바른 호출 방식
    return 0;
}

출력 결과:

Hello

 


● 실전 팁

  • void 함수는 단독 호출만 가능하며, 그 결과를 다른 연산이나 대입에 사용할 수 없습니다.
  • void 함수를 쓰는 이유는 단순히 동작을 수행하고 결과를 반환하지 않는 구조가 필요하기 때문입니다.
  • 값을 필요로 하는 연산에는 반드시 값을 반환하는 함수나 상수를 사용하세요.

 

C언어에서는 함수의 반환값 타입에 따라 그 사용법이 명확히 구분되므로, void 함수의 결과를 잘못된 방식으로 사용하는 실수를 피하고, 독립적인 호출 구조를 유지하는 것이 중요합니다.