하지만 난 내 프로젝트 요구 사항매크로
#define STR(format, ...) ({static char str[256]; (void)snprintf(str, 256, format, ##__VA_ARGS__); str;})
내가 아래에 있지만 같은 뭔가 위의 매크로를 변환 할 수 있습니다에 따라 -c99 지원하기 위해이 매크로를 변경하려면 마지막에는 str을 사용하는 방법을 모른다.
#define STR(format, ...)
do
{
static char str[256];
(void)snprintf(str, 256, format, ## __VA_ARGS__);
} while(0)
누군가 나를 도와 줄 수 있습니까?
C99 매크로에서 값을 반환하려면'do {...} while (0)'구문을 사용할 수 없습니다. –
이것을 varargs 함수로 변환해야합니다. 우선 –
매크로를 사용하여 이것을 달성하고자하는 이유는 무엇입니까? 그것은 절대적으로 함수의 의미입니다. – HuStmpHrrr