0

我在 Linux 中遇到了这个代码结构并想了解它

struct mystruct {
  int x;
  int b[40];
};


/*later */

static struct mystruct e = { .x = 5,
                             .b = {-1},   
                           };

.b = {-1} 做什么?它是否仅初始化数组 b 的第一个或所有元素?它是如何工作的 ?

4

2 回答 2

3
static struct mystruct e = {
    .x = 5,
    .b = {-1},   
             };

在这里它将 b[0] 初始化为 -1。其他元素初始化为0。

于 2012-05-09T12:46:48.483 回答
1

这意味着使用以 -1 开头并后跟 0 的数组初始化结构的成员 b

  • .b =是一个 GCC 扩展。(正如评论,从 C99 这也是标准的一部分)
  • {-1}是标准数组初始化。
于 2012-05-09T12:35:34.663 回答