访问变量的每个字节内容(c语言)
#include <stdio.h> #define fun(x) for(int fun_i = 0; fun_i < sizeof(x); fun_i++){printf("%x\t%x\n", (char *)&x+fun_i, *((char *)&x+fun_i));} int main(void){ unsigned p = 0x1122334455; fun(p); return 0; }
这里我用的宏定义,直接用函数也可以。我每次想看内容的时候总是忘记这个怎么写(主要是gdb玩不好),就做个记录。
从这个存放顺序来看,我这台机器是小端机,并且那条warning(隐式截断为无符号类型的整数)是我给p赋值的时候不小心多打了两个十六进制数,已经被截断了。