본문 바로가기

Firmware_Memory/STM32

C compiler warning: 'return' with a value, in function returning void 발생한 경우

 

가끔 코드를 작성하다가 보면 이런 메시지가 나오는 경우가 있다.

 

warning: 'return' with a value, in function returning void

 

이건 함수가 void 타입으로 되어 있는데 안에 return 값이 존재하는 것이 있다는 얘기다.

 

예를 들면 이런 코드 인 경우이다.

 

// 100을 리턴하는 매크로
#define return_value() do {	 \
	return 100;	\
} while (/*CONSTCOND*/0)

// void 반환 함수안에서 사용하면 void 를 기대했으나 return 값이 100이 되어 Warning 발생.
void return_void(void)
{
	return_value();
}

 

간단하게는 다른 함수로 감싸서 사용하는게 편하지 않을까 싶다.

 

int cover(void)
{
	return_value();
}

void return_void(void)
{
	cover();
}