【发布时间】:2017-02-07 16:05:13
【问题描述】:
好的,这实际上不是我正在编写的代码。这是一个过于简化的代码提取,会产生完全相同的错误。因此,我想如果我可以了解为什么我会在简化代码中出现错误,那么我可以将它应用到我的实际代码中。感谢您提前提供任何帮助/建议!
#include <stdio.h>
int main()
{
struct fruit
{
int apples;
int oranges;
int strawberries;
};
int x;
int y;
int z;
x = 1;
y = 2;
z = 3;
struct fruit apples = x;
struct fruit oranges = y;
struct fruit strawberries = 4;
printf("The value is %d or %d", fruit.apples,fruit.strawberries);
return 0;
}
【问题讨论】:
-
这里有so很多错误:看来最好的做法是读一本好书。 K & R 是无与伦比的恕我直言。
-
struct fruit fruit = {x, y, 4}; -
我实际上正在使用“C 编程语言”一书大声笑。他们也用 int 值初始化了一个结构。
-
K&R 是一本可怕的、完全过时的书,完整或错误以及糟糕的编程习惯。但是,如果您阅读第 6 章有关结构的内容,您会大笑:“ANSI 标准所做的主要更改是定义结构分配 - 结构可以被复制和分配,传递给函数,并由函数返回。这已经大多数编译器多年来一直支持,但现在精确定义了属性。现在也可以初始化自动结构和数组。”哇!未来就在这里!我要得到这个 ANSI C 东西的副本!
标签: c struct initialization initializer