建議使用 Visual Studio 2017

編譯器錯誤 C2009

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

巨集型式 'identifier' 的重複使用

巨集定義的型式參數清單會多次使用識別碼。 巨集的參數清單中的識別項必須是唯一的。

下列範例會產生 C2009:

// C2009.cpp  
#include <stdio.h>  
  
#define macro1(a,a) (a*a)   // C2009  
  
int main()   
{  
    printf_s("%d\n", macro1(2));  
}  

可能的解決方式:

// C2009b.cpp  
#include <stdio.h>  
  
#define macro2(a)   (a*a)   
#define macro3(a,b) (a*b)  
  
int main()   
{  
    printf_s("%d\n", macro2(2));  
    printf_s("%d\n", macro3(2,4));  
}  

顯示: