当前位置: 技术问答>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 + 指针 就可以了~~~~~~~~~~
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。