红联Linux门户
Linux帮助

union加 typedef与不加的区别

发布时间:2012-05-04 21:37:03来源:红联作者:mr_tianwei
[i=s] 本帖最后由 mr_tianwei 于 2012-5-5 07:51 编辑 [/i]

union wei //不加typedef typedef union wei
{ int a; { int a;
char b; char b;
}wei1; }wei1;
wei1.b='A'; wei1.b='A';
printf("%d",wei1.a); printf("%d",wei1.a);

不加typedef 输出结果 65
加 typedef 输出结果 10243256(不确定,有时是负的,初步怀疑是其地址)
求解释 加typedef 的共用体 为什么wei1.a 不是65
文章评论

共有 2 条评论

  1. mr_tianwei 于 2012-05-05 07:50:44发表:

    2# lykginy


    哎,突然想起来了,我竟然没有重新声明一个对象。。低级错误

  2. lykginy 于 2012-05-05 00:17:18发表:

    我猜想你搞错了typedef的用法
    你试一下这个
    typedef union
    {
    int a;
    char b;
    } WEI;
    WEI wei1;

    wei1.b = 'A';
    printf("%d\n", wei1.a);