当前位置: 技术问答>linux和unix
linux+arm如何读取非字节对齐的整形变量?
来源: 互联网 发布时间:2016-11-14
本文导语: 本帖最后由 yuanlulu 于 2011-03-16 23:05:10 编辑 如果内存中有一个非字对齐的整形变量,除了单个字节分别读取,怎么才能一次整体读出呢? 要求程序运行在arm开发板的linux操作系统下。 网上有人说在ADS中的指针前加__pac...
要求程序运行在arm开发板的linux操作系统下。
网上有人说在ADS中的指针前加__packed可以实现非对齐数据的读取,可是使用linux-arm-gcc编译该加什么选项呢?
ps:我试过加__packed,但是编译器不支持。大家有什么好办法吗?
|
理论上用强制类型就可以了,
int *p
char *str;
int i;
p= (int *)(str+i);//i可以变
一般情况下这个是可以用的。但是有的编译器不好使。
__attribute__ ((packed)) 可以使用内存结构进行紧凑性定义。
int *p
char *str;
int i;
p= (int *)(str+i);//i可以变
一般情况下这个是可以用的。但是有的编译器不好使。
__attribute__ ((packed)) 可以使用内存结构进行紧凑性定义。
|
union + 指针 就可以了~~~~~~~~~~