我正在使用visual studio 13.我刚刚声明并初始化了一个无符号长数组。
unsigned long z[8] = { 0xffffffff, 0x00000001, 0x00000000, 0x00000000,0x00000000, 0xffffffff, 0xffffffff, 0xffffffff };
但它会引发以下错误
错误C2536 ::无法为数组指定显式初始值设定项
我读了一些与此错误相关的答案,但它没有帮助我。有人可以帮我解决这个错误吗?
答案 0 :(得分:1)
在"自然"使用初始化声明的上下文(即数组对象声明)完全有效。它没有错。
错误的唯一解释是,正如您在注释中所指出的那样,您的数组被声明为结构成员,并且您正试图在结构声明中指定初始化器。在C语言中做这样的事情没有任何意义。无论这些成员是数组还是其他成员,都无法为结构声明中的成员指定初始值设定项。
初始化器应该在对象定义中指定,如
struct S
{
unsigned long z[8];
};
struct S s = { { 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff } };