我是编程新手,所以我不知道这个问题有多严重。我正在尝试使用代码
初始化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)中有一个类似的例子。 感谢任何答案。
答案 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};
我猜测,因为结构充当了这个编译的数据类型,但是你以后将无法访问该数据类型。