Error

#Error

用typedef将byte_pointer定义为指向unsigned char的对象的指针(新)

 #include <stdio.h>

typedef unsigned char *byte_pointer;

void show_bytes(byte_pointer start, int len)
{
    int i;
    for(i= 0; i < len; i++)
    {
        printf("%.2x", start[i]);
    }
    printf("\n");
}

void show_int(int x)
{
    show_bytes((byte_pointer)&x, sizeof(int));
}

void show_float(float x)
{
    show_bytes((byte_pointer)&x, sizeof(float));
}
void show_pointer(void *x)
{
        show_bytes((byte_pointer)&x,sizeof(void*));     //sizeof(void *)????
}
int main()
{
    int ival = 10;
    float fval = (float) ival;
    int *pval = &ival;
    show_int(ival);
    show_float(fval);
    show_pointer(pval);
    return 0;
}

输出是

0a000000
00002041
74ff2200

不明白怎么来的
尤其是那个sizeof(void *)????
还有那个printf("%.2x")和printf("%2x")有什么差别哦???

posted on 2009-10-07 10:29 Error 阅读(2356) 评论(0)  编辑 收藏 引用 所属分类: 读《深入理解计算机系统》


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理