【问题标题】:Array of structures for PowerPC CompilerPowerPC 编译器的结构数组
【发布时间】:2012-08-15 14:22:36
【问题描述】:

我有一个问题,我被要求声明一个结构数组,里面有一个结构,如下所示:

typedef struct {
int a;
int b;
int c;
}blah;

int main()
{
    blah arr[1] = {{0, 0, 0}};
//...
}

上面的初始化是否正确?

【问题讨论】:

  • 是的。更多字符,以便发布。
  • 你在编译器中试过了吗?
  • @dbaupp,是的,编译器告诉我有太多的初始化程序。编译器适用于 PowerPC...
  • GCC 4.4 到 4.7 一点也不抱怨。
  • 能否指定编译器版本和目标平台?

标签: c arrays struct initialization powerpc


【解决方案1】:

是的,完全正确。

长度为 1 的数组与包含多个元素的数组没有太大区别:它们都是聚合类型,它们的初始化应该用花括号括起来。如果您的数组有 2 个元素,则初始化将类似于

blah arr[2] = { {0, 0, 0}, {0, 0, 0} };

【讨论】:

    【解决方案2】:

    是的。

    如果要使用显式初始化程序,则无需指定大小,让编译器自己解决:

    blah arr[] = { { 0, 0, 0 } };
    

    我还添加了空格以使嵌套更清晰。

    【讨论】:

    • 我指定数组中结构数量的方式应该不是问题,对吗?
    • 确实认为这可能是编译器问题,此代码正在为 PowerPC 编译...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 1970-01-01
    相关资源
    最近更新 更多