错误C2536 ::无法为数组指定显式初始值设定项

时间:2015-11-12 04:55:04

标签: c arrays

我正在使用visual studio 13.我刚刚声明并初始化了一个无符号长数组。

 unsigned long z[8] = { 0xffffffff, 0x00000001, 0x00000000, 0x00000000,0x00000000, 0xffffffff, 0xffffffff, 0xffffffff }; 

但它会引发以下错误

  

错误C2536 ::无法为数组指定显式初始值设定项

我读了一些与此错误相关的答案,但它没有帮助我。有人可以帮我解决这个错误吗?

1 个答案:

答案 0 :(得分:1)

在"自然"使用初始化声明的上下文(即数组对象声明)完全有效。它没有错。

错误的唯一解释是,正如您在注释中所指出的那样,您的数组被声明为结构成员,并且您正试图在结构声明中指定初始化器。在C语言中做这样的事情没有任何意义。无论这些成员是数组还是其他成员,都无法为结构声明中的成员指定初始值设定项。

初始化器应该在对象定义中指定,如

struct S 
{
  unsigned long z[8];
};

struct S s = { { 0xffffffff, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0xffffffff, 0xffffffff, 0xffffffff } };