0

我正在尝试struct使用以下语法将 a 添加到我的程序中:

struct foo {
    char bar[] = "baz";
    char qux[] = "abc";
    /* and so on */
};

出于某种原因,在我必须添加分号的说法中,我在每个变量声明中都遇到了一个错误struct,并且似乎陷入了一种循环。建议的语法类似于

struct foo {
    char bar[]; =; ;;;;;;/* infinite semicolons */"baz";
}

这是我第一次遇到这种错误;我真的做错了什么,还是这只是编译器本身的问题?

4

2 回答 2

6

这与 Xcode 无关。完全没有。

你得到一个编译器错误,因为你不能像这样初始化结构。

结构类型定义仅与类型有关。此时给成员赋值是没有意义的。也许你的意思是

struct foo {
    char *bar;
    char *baz;
};

struct foo x = { "quirk", "foobar" };

反而?

于 2013-06-21T16:56:56.370 回答
2

你做错了什么。您不能为结构的成员分配值……您正在定义数据类型,而不是它的实例。

这将为您提供结构定义,然后直接声明其类型的变量(带初始化):

struct foo {
    char *bar;
    char *qux;
} variable_name = {
    "baz", "abc"
};
于 2013-06-21T16:56:20.113 回答