如果之前有人问过这个问题,我提前道歉,但我没能在 SO 上找到任何特别与此相关的内容。
基本上,假设我有一个简单的宏:
#define STR "somestring"
当我在该宏上执行 printf
或 puts
时,我得到一个
error: expected ')' before ';' token
简单来说就是:
int main( int argc, char** argv )
{
puts( STR ); //error
return 0;
}
这可能吗?如果是,怎么办?
最佳答案
问题很可能是 STR
在您的程序中的某个时刻被重新定义了。下面的代码编译得很好。
#define STR "something"
int _tmain(int argc, _TCHAR* argv[])
{
puts(STR);
return 0;
}
作为实验尝试选择一个不同的名称,说 STR_TEST
看看是否可行。如果是这样,那么您就知道宏是在别处定义的
另一个可能的错误来源是 #define
行以 ;
结尾(不应该)
关于c - 如何在 C 中打印定义的字符串宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9455583/