[讨论] 多出来的字节?

leang521   2011-5-12 15:38 楼主

边看代码变模拟。结果遇到一个问题,代码如下

 

#include <stdio.h>
struct time
{
int year; /*年*/
int month; /*月*/
int day; /*日*/
};
union dig
{
char byte[6];
struct time data; /*嵌套的结构体类型*/
};
void main()
{
    union dig unit;
    int a=0;
    int i;
   
    printf("enter year:\n");
    unit.data.year = 1976;
    /*scanf("%d",&unit.data.year);/* 输入年 */
    //printf("%d\n",unit.byte[0]);
    printf("enter month:\n");
    unit.data.month = 4;
    /*scanf("%d",&unit.data.month); /*输入月 */
    printf("enter day:\n");
    unit.data.day = 23;
    /*scanf("%d",&unit.data.day); /*输入日 */
   
    printf("year=%d month=%d day=%d\n",
           unit.data.year,
           unit.data.month,
           unit.data.day); /*打印输出*/
   
    for(i = 0; i < 6; i++)
    {
        printf("%d,",unit.byte); /*按字节以十进制输出 */
    }
    printf("\n");
   
    for(i = 0; i < 6; i++)
    {
        a=unit.byte;
        printf("%x,",a); /*按字节以十进制输出*/
    }
   
    printf("\n");
   
}

 

输出第一个字节应该是b8,也就是184,但是结果输出-74,也即FFB8,多出来的字节哪来的呢?

回复评论 (3)

这里这么冷清么?
点赞  2011-5-12 21:14
我郁闷了,新区如此的冷清,快成鬼城了
点赞  2011-5-14 02:40

回复 板凳 leang521 的帖子

错了,是穿越了
强者为尊,弱者,死无葬身之地
点赞  2011-12-13 13:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复