各位应该怎么办?
struct E167LogicalVolIntegrityDesc {
__u32 freeSpaceTable[0];
__u32 sizeTable[0];
__u8 impUse[0];
};error C2229: struct 'E167LogicalVolIntegrityDesc' has an illegal zero-sized array
struct E167LogicalVolIntegrityDesc {
__u32 freeSpaceTable[0];
__u32 sizeTable[0];
__u8 impUse[0];
};error C2229: struct 'E167LogicalVolIntegrityDesc' has an illegal zero-sized array
要是没有定义,你可以自己定义,__u8==unsigned char
__u32==unsigned int(windows )8和32的意思是bit数,
unsigned int;(32bit)
The constant-expression, if present, must have integral type, and a value larger than zero.
-----------------------------------------------------------------Syntaxdeclaration :declaration-specifiers init-declarator-list opt ;init-declarator-list :init-declarator
init-declarator-list , init-declaratorinit-declarator :declarator
declarator = initializerdeclarator :pointer opt direct-declaratordirect-declarator :direct-declarator [ constant-expression opt ]Because constant-expression is optional, the syntax has two forms: The first form defines an array variable. The constant-expression argument within the brackets specifies the number of elements in the array. The constant-expression, if present, must have integral type, and a value larger than zero. Each element has the type given by type-specifier, which can be any type except void. An array element cannot be a function type.
The second form declares a variable that has been defined elsewhere. It omits the constant-expression argument in brackets, but not the brackets. You can use this form only if you previously have initialized the array, declared it as a parameter, or declared it as a reference to an array explicitly defined elsewhere in the program.
In both forms, direct-declarator names the variable and can modify the variable’s type. The brackets ([ ]) following direct-declarator modify the declarator to an array type. ----------------From MSDN--------------------------------------
哪位大侠有办法?