#define TRACE(arg1,...) char* arg1;
int main(void)
{
int a=4;
TRACE(("Hello",a)); // convert "Hello" to a valid char variable name.
return 0;
}
我在将字符串
"Hello"
转换为变量名时遇到了问题。例如:"Hello"
应该被转换为const char* Hello;
,并使用宏进行操作。由于存在双引号,我无法进行转换。这是我在Stack Overflow上的第一个问题。
TRACE(Hello)
? - Sander De Dycker#define SMM_TRACE(x) printf x
#define SMM_TRACE_CONVERT SMM_TRACE(CONVERT_ERROR_KEY_FAILED)
int main()
{
int num = 1;
SMM_TRACE(("the number is %d\n", num));
printf("%s","SMM_TRACE_CONVERT\n");
return 0;
}
- w.jayson("Hello")
到static const char* Hello
的转换。 我的限制是,如果我在宏中消除了内部括号,则Hello
可以变成一个变量。 - w.jayson