我正在尝试使用以下语法将struct
添加到我的程序中:
struct foo {
char bar[] = "baz";
char qux[] = "abc";
/* and so on */
};
出于某种原因,我在struct
中的每个变量声明中得到一个错误,说我必须添加分号,并且似乎属于这种循环。建议的语法类似于
struct foo {
char bar[]; =; ;;;;;;/* infinite semicolons */"baz";
}
这是我第一次遇到这种错误;我真的做错了什么,或者这只是编译器本身的一个问题?
这与Xcode无关。完全没有。
您收到编译器错误,因为您无法像这样初始化结构。
结构类型定义仅与类型有关。此时为成员分配值毫无意义。也许你的意思
struct foo {
char *bar;
char *baz;
};
struct foo x = { "quirk", "foobar" };
代替?
你做错了什么。您不能将值分配给结构的成员...您正在定义数据类型,而不是它的实例。
这将为您提供结构定义,然后直接声明其类型的变量(带初始化):
struct foo {
char *bar;
char *qux;
} variable_name = {
"baz", "abc"
};