分享到:

C语言网

 找回密码
 加入社区

QQ登录

只需一步,快速开始

查看: 395|回复: 0

为会没有打印结构中的type却打印了联合里面的成员 [复制链接]

Rank: 1

主题
1
帖子
1
C币
2 枚
在线时间
0 小时
发表于 2017-1-6 18:31:50 |显示全部楼层
3C币
#include<stdio.h>
#define AI 'c'
#define BI 'I'
#define CI 'F'
struct generic_tag
{
        char type;
        union shared_tag
        {
                char c;
                int i;
                float f;
        }shared;
};
void print_function(struct generic_tag generic);
int main(void)
{
        struct generic_tag var;
        var.type = AI;
        var.shared.c = '$';
        print_function(var);
        return 0;
};
void print_function(struct generic_tag generic)
{
        printf("\n\nThe generic value is...");
        switch (generic.type)
        {
        case AI:printf("%c", generic.shared.c); break;
        case CI:printf("%f", generic.shared.f); break;
        default:printf("an unknown type:%c\n", generic.type); break;
        }
}

您需要登录后才可以回帖 登录 | 加入社区

C语言  C语言论坛 ( 粤ICP备11042647号-2 )

GMT+8, 2017-3-23 14:16

©2009-2015 cyuyan.com.cn

回顶部