`__value`是gcc扩展名,如果是,它会做什么?它是否具有VC++等价物?

Nav*_*vin 2 c gcc cygwin visual-c++ visual-studio-2012

标题说明了一切.

我试图使用cygwin的gcc中的一些库和visual studio的C++编译器,但下面的代码C:\cygwin\usr\include\sys\_types.h不能编译:

#ifndef __mbstate_t_defined
/* Conversion state information.  */
typedef struct
{
  int __count;
  union
  {
    wint_t __wch;
    unsigned char __wchb[4];
  } __value;        /* Value so far.  */
} _mbstate_t;
#endif
Run Code Online (Sandbox Code Playgroud)

构建输出:

1>c:\cygwin\usr\include\sys\_types.h(74): error C4980: '__value' : use of this keyword requires /clr:oldSyntax command line option
1>c:\cygwin\usr\include\sys\_types.h(74): error C2059: syntax error : '__value'
Run Code Online (Sandbox Code Playgroud)

Visual Studio似乎将此解释为某种CLR扩展

NPE*_*NPE 6

__valuegcc扩展,如果是,它会做什么?它是否具有VC++等价物?

这是相反的方式.它是VC++中关键字,但不是gcc.

gcc,它只是一个标识符.