暮光青年 发表于 2014-3-25 21:56:30

请教个关于枚举的问题。

#include <stdio.h>

char * getGender(int);

typedef struct {
        int year;
        int month;
        int day;
} date;
       
typedef enum {male, female} gender;
       
typedef struct {
        char *name;
        gender sex;
        int age;
        date birthday;
} student [];
       
int main(int argc, char *argv[]) {

        student s = {
                {"张三", male, 29, {1984, 1, 26}},
                {"李四", male, 26, {1986, 4, 5}},
                {"王五", male, 35, {1973, 8, 5}},
                {"如花", female, 30, {1982, 5, 30}}
        };
       
        int length = sizeof(s) / sizeof(s);
       
        puts("database is:");
        for( int i = 0; i < length; i++ ) {
                printf("姓名:%s\t性别:%s\t年龄:%d\t生日:%d-%d-%d\n", s.name, getGender(s.sex), s.age, s.birthday.year, s.birthday.month, s.birthday.day);
        }
        return 0;
}

char * getGender(int sex) {
        switch(sex) {
                case 0:
                        return "男"; break;
                case 1:
                        return "女"; break;
                default:
                       return "人妖";
        }
}
请问枚举值只能是int的,我要保存其它数据就保存不了了,这里的性别我用了枚举,还得写个还原数据的函数来处理,有没有其它更方便的办法呢?

网络学习 发表于 2014-3-26 00:13:14

期待大侠们的指导

暮光青年 发表于 2014-3-27 09:26:35

没人回答哦。。

微博评论 发表于 2014-6-10 21:20:58

[哈哈] 哈哈,你也是程序猿!!!加个微信呐,我个人微信号armycome

http://bbs.fishc.com/xwb/images/bgimg/icon_logo.png 来自 DanJar 的新浪微博
页: [1]
查看完整版本: 请教个关于枚举的问题。