OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3211|回复: 3

u8 类型怎么能够打印出 257 ????

[复制链接]

22

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2014-4-7
在线时间
53 小时
发表于 2017-7-10 22:21:14 | 显示全部楼层 |阅读模式
1金钱
首先我定义了一个联合体如下:
typedef union
{
    int byteone;
    struct
    {
        u8 structbit0:1;
        u8 structbit1:1;
        u8 structbit2:2;
        u8 structbit3:1;
        u8 structbit4:1;
        u8 structbit5:1;
        u8 structbit6:1;
    }Struct_A;

}Test_bit;

然后赋值并打印
Test_bit TestData={0};

void app_test_union_task(void)
{
        u8 i=0;
       
        TestData.byteone=257;
       
        USART3_printf("%d  %d  %d  %d  %d  %d",TestData.Struct_A,TestData.byteone,i,sizeof(Test_bit),sizeof(TestData.byteone),sizeof(TestData.Struct_A));
}

结果是: 257  257  0  4   4   1
说明 TestData.Struct_A  是 u8  类型的它打印出来的值是  257   u8的最大值不是  255 吗???
请问各位大神  这是怎么回事,谢谢!!!!!

最佳答案

查看完整内容[请看2#楼]

你那是定义的int好不
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165359
金钱
165359
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-7-10 22:21:15 | 显示全部楼层
回复

使用道具 举报

2

主题

26

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
203
金钱
203
注册时间
2017-7-6
在线时间
45 小时
发表于 2017-7-11 08:43:52 | 显示全部楼层
还是分清楚联合体和结构体的区别吧!
回复

使用道具 举报

22

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
446
金钱
446
注册时间
2014-4-7
在线时间
53 小时
 楼主| 发表于 2017-7-11 11:16:45 | 显示全部楼层
正点原子 发表于 2017-7-10 22:21
你那是定义的int好不

TestData.Struct_A   是  u8  类型的   他是结构体   里面是位操作  怎么回事  int  呢,他是和 int的类型在一个   联合体   里面!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-12-18 14:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表