标题:求大神啊,快逼疯啦
只看楼主
zzzz23456z
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-7-21
结帖率:0
已结贴  问题点数:20 回复次数:6 
求大神啊,快逼疯啦

typedef enum _proptype{//游戏道具种类枚举
    Weapon,Armoer,Con,card,Frag
}Proptype;
typedef struct _prop{
    int id;
    char name[50];    //道具名称
    int level;
    int stock;
    double price;
    Proptype type;
    union{//根据类型对应的数据
        int minattack;
        int mindefence;
        int minpower;    //如果是血瓶,对应增加的能量值
    };union{
        int maxattack;
        int maxdefence;
        int maxpower;   
    };
    char desc[200];    //道具的功能描述
}Prop;

Prop propArray[] = {
    {1,"帝皇天烈剑",1,5,5000,Weapon,.minattack=1,.maxattack=4,"上古三皇五帝用过的宝剑!"},    ***错误就出在这一行
};

初始化的时候就是不对,编译器是vc6.0  
错误原因是error C2059: syntax error : '.'
搜索更多相关主题的帖子: int char union 对应 错误 
2017-07-21 22:10
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分:10647
注 册:2015-3-19
得分:4 
翻译为语法错误‘.’

剑栈风樯各苦辛,别时冰雪到时春
2017-07-21 22:15
zzzz23456z
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-7-21
得分:0 
可是应该怎么赋值呢
2017-07-21 22:20
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
得分:4 
程序代码:
typedef enum _proptype{//游戏道具种类枚举
    Weapon,Armoer,Con,card,Frag
}Proptype;
typedef struct _prop{
    int id;
    char name[50];    //道具名称
    int level;
    int stock;
    double price;
    Proptype type;
    union{//根据类型对应的数据
        int minattack;
        int mindefence;
        int minpower;    //如果是血瓶,对应增加的能量值
    };union{
        int maxattack;
        int maxdefence;
        int maxpower;    
    };
    char desc[200];    //道具的功能描述
}Prop;

Prop propArray[] = {//运算符.适用于联合和结构,语法是 联合或结构的名字.联合或结构的成员。也就是说,你缺少联合的名字。
    {1,"帝皇天烈剑",1,5,5000,Weapon,.minattack=1,.maxattack=4,"上古三皇五帝用过的宝剑!"},    ***错误就出在这一行
};

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-07-21 22:58
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:4 
这叫“designated initializer”,C语言的标准语法,所以你需要一个支持标准C的编译器。

楼主用上个世纪的VC6,看起来是个古董爱好者,我推荐tc2.0给你,我当年就用的是它。
2017-07-21 23:16
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:335
专家分:1125
注 册:2014-4-13
得分:4 
union{
        int maxattack;
        int maxdefence;
        int maxpower;   
    };
这样定义联合,不能使用,没有变量名或类型名,
union{
        int maxattack;
        int maxdefence;
        int maxpower;   
    }xxx;
或者union _xxx{
        int maxattack;
        int maxdefence;
        int maxpower;   
    };
_xxx xxx;
对于联合,貌似不能赋初值。
还有,一般联合应用于几种不同长度的变量类型共用一块内存,相同的类型毫无必要。
2017-07-21 23:21
lmlm1001
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:4
帖 子:107
专家分:550
注 册:2015-3-1
得分:4 
minattack=1,.maxattack=4,
换成
1, 4,
2017-07-22 07:14



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-479536-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.469119 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved