初始化struct vars时出错

时间:2014-02-14 14:46:12

标签: c

我是编程新手,所以我不知道这个问题有多严重。我正在尝试使用代码

初始化main()中的一些结构变量
struct {double real;double imaginary;} c1={0.0,1.0},c2=(1.0,0.0),c3;

但是当我编译它(使用gcc)时,它会说:“错误:无效的初始化程序”指向第一个左括号(第一个“双”之前的那个)。

这句话怎么了?在我研究的书(C Programming,A Modern Aproach-K.N.King,p.379)中有一个类似的例子。 感谢任何答案。

2 个答案:

答案 0 :(得分:2)

您需要在c2初始化中使用大括号,而不是括号:

struct {double real;double imaginary;} c1={0.0,1.0},c2={1.0,0.0},c3;
                                                       ^       ^

答案 1 :(得分:-1)

您需要在结构定义后添加另一个分号。

编辑:试试这个。

struct myNumber {
    double real;
    double imaginary;
};

struct myNumber c1 = {0.0,1.0};
struct myNumber c2 = {1.0,0.0};
struct myNumber c3;

您想要命名您的结构。此外,在初始化struct变量时,您要使用花括号。你说这个有效:

struct {
    double real;
    double imaginary;
} c1 = {0.0,1.0};

我猜测,因为结构充当了这个编译的数据类型,但是你以后将无法访问该数据类型。