簡體   English   中英

我想在宏中使用枚舉

[英]I want to use enum in macro

enum ArgPos

{
P1 = 1,
P2 = 2,
P3 = 3
};

void fun(int, int, int);

#define FUN(ArgPos, ArgPos, ArgPos) fun(ArgPos, ArgPos, ArgPos)

int main(void)

{

FUN(P1, P2, P3);
return 0;
}

void fun(int a, int b, int c)
{
 printf("fun");
}

定義(如果您真的這樣寫的話)使用args相同名稱時出錯

應該

#define FUN(ArgPos1, ArgPos2, ArgPos3) fun(ArgPos1, ArgPos2, ArgPos3)

您將enum和宏參數命名為相同。

你需要:

#define FUN(x,y,z) fun(x,y,z)

問題不在於枚舉,而是與您的宏:

#define FUN(x,y,z) fun(x,y,z)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM