정수 값을 반환하는 함수가 있습니다. 이제이 함수를 호출하는 매크로를 작성하고 반환 값을 가져 와서 문자열을 앞에 추가하여 결과 문자열을 반환합니다.C에서 매크로는 정수를 반환하는 함수를 호출 한 다음 문자열을 반환합니다.
나는 이것을 시도 :
int ret = 0;
ret = TEST(2);
printf("PORT-%d\n", ret);
이 완벽하게 작동합니다 :
#define TEST(x) is_enabled(x)
나는 같은 주요 기능이 매크로를 호출합니다. 그러나 매크로는 문자열 PORT-x를 반환해야합니다. 여기서 x는 호출 된 함수의 반환 값입니다. 어떻게해야합니까?
는 편집 :
나는 또한으로 여러 줄로를 작성했습니다 :
#define TEST(x)\
{\
is_enabled(x);\
}
과 같은 주요 기능에 전화 :
printf("PORT-%d\n", TEST(2));
그러나 이것은 컴파일을 제공합니다 시간 오류 :
error: expected expression before â{â token
"sprintf"를 호출하는 매크로를 작성하여 수행 할 수 있지만 버퍼를 할당하고 매크로에 전달해야합니다. 문제는 왜 이것을 처음부터 시작하고 싶습니까? 왜냐하면 당신이 잘못된 방식으로 뭔가를 풀려고하는 것처럼 느껴지기 때문입니다. –
왜'strcat'을 사용할 수 없습니까? 매크로가 필요한 이유는 무엇입니까? – Gopi
당신은 확실히이 함수를 작성해야합니다 ... – Antzi