一个C语言结构体的有关问题,有些不理解

一个C语言结构体的问题,有些不理解
定义了一个结构体:

typedef struct  __sys_storage_struct__
{
unsigned int magic_word;
unsigned int crc;
unsigned int versionDate;
unsigned int para_data[SRM_PARA_NUMBER-3];
}ROM_PARA, *P_ROM_PARA;

然后需要对前三个变量进行初始化,初始化如下:

ROM_PARA g_sys_register_para = 
{
    TAG_WORD_TABLE_MAP,
    0,              //0:  checksum
    0x20141101,      //version
    
    //PARAMETER SECTOR
    {
        0,               //reserved
    }
};


就是注释 保留 的那个地方,有什么作用?加的那个大括号目的是什么?
------解决思路----------------------
保留的,一般只是起一个占用空间的作用,以备后用。
大括号是用来初始化结构体里边的数组成员para_data的。
------解决思路----------------------
对于这种连续内存块的初始化, c99标准和c++11标准都有不同的规定。
c99 
struct T{
     int a;
     int b;
    double c;
};

struct T  t[ ] = {
    {1, 2, 0.5},
    {5, 12, 78.00},
    {45, 12, 44}
};  //这样就定义了一个结构体数组并且赋了初值

里面的{} 相当于这样
int arr[10] = {0}; //对他进行初始化 
------解决思路----------------------
引用:
Quote: 引用:

para_data是数组。
哇,赵老师!我知道是数组,只是自己见的程序少,以前没见到过大括号整体赋值这种做法。

“变量赋值”和“变量初始化”不是一回事!
“变量赋值”发生在运行期,其写法遵循赋值语法规定。
“变量初始化”发生在编译期或运行期,其写法遵循初始化列表语法规定。