【问题标题】:Initialize member of the struct [duplicate]初始化结构的成员[重复]
【发布时间】:2016-10-09 02:36:19
【问题描述】:

在 C 中,我试图初始化结构的成员,但我无法做到。这是我的代码结构:

struct values{
  int a;
  int b;
  int b;
  int d;
 };
struct values value[65535]; 

对于结构对象数组中的所有值,我想将结构的 b 成员初始化为 -1。我想不出这样做的好方法。

【问题讨论】:

  • 您使用的是哪个编译器? GCC 有一个非标准的扩展,使它变得简单; Clang 可能也支持它以实现 GCC 兼容性。否则,没有一个简单的方法来做到这一点。
  • 遍历它们并设置它?

标签: c struct


【解决方案1】:

怎么样:

for (i = 0; i < 65535; i++)
    value[i].b = -1;

【讨论】:

    【解决方案2】:
    #include<stdio.h>
    struct values{
      int a;
      int b=-1;
      int c;
      int d;
     };
    struct values value[65535];
    int main(){
        printf("%d",value[2].b);
        return 0;
    } 
    

    如果这有帮助,请告诉我。

    【讨论】:

    • 此代码适用于哪种语言?或者,如果你认为是 C,那是哪个编译器?
    • 在 c 中提出问题
    • 是的,但是您显示的代码不是有效的 C — 这就是为什么我问哪种语言或哪种编译器。
    • 编译器 TDM-GCC 4.9.2 64 位
    • 我不知道 TDM 前缀的意义,但标准 GCC 6.2.0(和 4.9.1)拒绝它:error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token 并将 int b=-1; 标识为导致错误。编译时未指定任何选项以使其编译更严格。
    猜你喜欢
    • 2014-08-27
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2020-05-23
    • 1970-01-01
    相关资源
    最近更新 更多