编辑代码

#include <stdio.h>

typedef unsigned char *byte_pointer;

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

void show_int(int x)
{
    show_bytes((byte_pointer) &x,sizeof(int));
    printf("\n");
}

void show_float(float x)
{
    show_bytes((byte_pointer) &x,sizeof(float));
    printf("\n");
}

void show_pointer(void *x)
{
    show_bytes((byte_pointer) &x,sizeof(void*));
    printf("\n");
}

void test_show_bytes(int val)
{
    int ival = val;
    float fval = (float)val;
    int* pval = &val;
    show_int(ival);
    show_float(fval);
    show_pointer(pval);
}

int main () {

    test_show_bytes(12345);

    return 0;
}