繁体   English   中英

如何在结构数组中初始化数组?

[英]How to initialize array in an array of structs?

假设我的结构定义为:

typedef struct _TStruct {

    uint Values[3];

} TStruct;

然后定义一个结构数组:

TStruct Data[3];

如何正确初始化此结构数组中的数组?

要在结构数组中正确初始化数组,您需要执行以下操作:

typedef struct _TStruct {

    uint Values[3];

} TStruct;

TStruct Data[3] = {

    {{ 0x86, 0x55, 0x79 }}, {{ 0xaa, 0xbb, 0xcc }}, {{ 0x76, 0x23, 0x24 }}

}; 

注意每组值周围的双括号。 另外一对大括号对于避免出现后续gcc错误至关重要(仅当存在-Wall标志时,才由gcc -Wmissing-braces标志“检测到”):

警告:初始化器周围缺少花括号

注意事项

  1. 使用双括号{{ }}不会更改内存中数据的布局

  2. MS Visual Studio C ++编译器上未出现此警告

也可以看看:

如何修复警告:初始化程序周围缺少花括号?

GCC错误53319

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM