Я пишу трассировщик с сигнатурой функции:
void AO_TRACE(int level, char *macrostring, uint16_t type, uint32_t argument1, uint16_t argument2);
и у меня есть полезный макрос для создания строки из макроса
#define strmacro(s) #s
Я вызываю свою функцию так:
AOCS_TRACE(LEVEL_TRACE,strmacro(TRACE_qtn_guidance_TCOUNT0_VALUE), TRACE_qtn_guidance_TCOUNT0_VALUE, tcount[0],0);
возможно ли написать макрос для вызова функции подобным образом
AOCS_TRACE(LEVEL_TRACE,newmacro(TRACE_qtn_guidance_TCOUNT0_VALUE), tcount[0],0);
, другими словами, написать макрос, который просто помещает строковое представление ввода и сам ввод.Я пробовал:
#define TRACE(s) #s, s
и
#define TRACE(s) (#s, s)
, но это не работает должным образом