본문 바로가기

공부(IT)/c

[c] 삼항연산자는 반드시 값을 반환해야한다

#include<stdio.h>


void test(){

}

int main()

{

   int a;

scanf("%d",&a);


printf("%d", a>0? test() : a);

}


---------------------------------------------------

#include<stdio.h>


int test(){

 return 0;

}

int main()

{

   int a;

scanf("%d",&a);


printf("%d", a>0? test() : a);

}

--------------------------------------------------------



1번 예제에서는 에러가발생하지만 2번에서는 정상 작동한다.

에러 내용 : (error: invalid use of void expression)


삼항연산자는 반드시 값을 반환해야하므로 그 안에 void함수는 사용될수 없다.

종류는 컴파일 에러인듯하다.