#include <stdio.h>
typedef unsigned char *byte_pointer;
//The datatype size_t is unsigned integral type. It represents the size of any object in bytes and returned by sizeof operator.
void show_bytes(byte_pointer start, size_t len){
size_t i;
for (i=0; i<len; i++) {
printf("%.1x",start[i]);
}
printf("\n");
}
void show_int(int x){
show_bytes((byte_pointer)&x, sizeof(int));//取地址后强制转换成char*类型的指针
}
void show_float(float x){
show_bytes((byte_pointer) &x, sizeof(float));
}
void show_pointer(void* x){
show_bytes((byte_pointer)&x, sizeof(void*));
}
int main(){
int x=0x654321;
float y=1;
int *z = &x;
show_int(x);
show_float(y);
show_pointer(z);
return 0;
}
/*result:
21436500 小端机
0000803f
88f4bfeffe7f0000
*/
[CSAPP] show_byte
最新推荐文章于 2021-07-22 13:12:53 发布