本帖最后由 oggplay 于 2014-7-4 20:27 编辑 [b]#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 *));
}
思考对show_bytes的三次调用的结果:
[b]int val=0x87654321;
byte_pointer valp=(byte_pointer) &val;
show_bytes(valp,1);//第一次
show_bytes(valp,2);//第二次
show_bytes(valp,3);//第三次
[/b]以上是小端法机器输出结果!
[/b] |