#include<stdio.h>
#define A(int x) printf("%d\n",x)
#define AS(A) A(20)
typedef struct{
int *m;
int n;
int k;
}st;
//static st sb[10] = {AS(A)}
int main()
{
AS(A);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我收到如下错误.
Line 14: error: macro parameters must be comma-separated
Run Code Online (Sandbox Code Playgroud)
请帮忙.
这与嵌套宏无关.问题是
#define A(int x) printf("%d\n",x)
Run Code Online (Sandbox Code Playgroud)
你必须删除该int部分.像这样:
#define A(x) printf("%d\n",x)
Run Code Online (Sandbox Code Playgroud)
如果您离开int,预处理器会将其解释为另一个参数,这就是它告诉您的原因
Line 14: error: macro parameters must be comma-separated
Run Code Online (Sandbox Code Playgroud)
因为期望:
#define A(int,x) printf("%d\n",x)
Run Code Online (Sandbox Code Playgroud)