当前位置:  技术问答>linux和unix

字节对齐 ARM VS Not ARM,经验人士请指点!!

    来源: 互联网  发布时间:2016-02-08

    本文导语:  #pragma pack指令在Linux下好使,但是交差编译在ARM板上运行没有效果。。。 如下代码在Linux打印出来是3,在ARM上打印出来是4 #pragma pack(push,1) typedef struct _myHeader {   u16 char2;   unsigned char ch; } MYHEADER; #pragma pack(pop)...

#pragma pack指令在Linux下好使,但是交差编译在ARM板上运行没有效果。。。
如下代码在Linux打印出来是3,在ARM上打印出来是4
#pragma pack(push,1)
typedef struct _myHeader {
  u16 char2;
  unsigned char ch;
} MYHEADER;
#pragma pack(pop)

MYHEADER myheader1;
printf("size of myheader1 = %dn", sizeof(myheader1));
请问应该怎么办?
1、是否有比pragma pack更强的指令?
2、arm-linux-gcc是否有什么可以设的?
谢谢指点!

|
gcc
-fpack-struct选项是取消字节对齐

|
这种make -c的编译方式要加编译选项你必须清楚KERNELDIR中Makefile的变量设置,如你要增加include选项可以

$(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=../include

其实下面这个Makefile已经可以满足绝大部分的模块编译需要,主要是可以根据需要手动添加一些编译选项。
gcc -c -D__KERNEL__ -DMODULE -o fps200usb.ko fps200usb.c


另外有个疑问,楼主既然是交叉编译,也可以$(MAKE) -C $(KERNELDIR) M=$(PWD)这样编译么?那怎么指定交叉编译链?

|
ARM中如果想禁止对齐, 在结构声明的时候加上__packed
如:
__packed typedef struct _myHeader
{
   ...
   ...
}MYHEADER;

不过据说会影响性能.

|
gcc请在结构定义后用__attribute__ ((packed))
如果用-fpack-struct请注意一下gcc手册中的warning。

    
 
 

您可能感兴趣的文章:

  • 关于suse linux 下的字节序对齐问题
  • 用g++开发,怎么设置结构(struct)1字节对齐?
  • 关于字节对齐问题????????????????
  • 字节对齐
  • linux中字节对齐问题
  • 请问在linux下编译程序怎么设置编译器字节对齐?
  • gcc3.4中struct中字节对齐问题??找了很久没有确定的方法。
  • Solaris系统下,使用gcc编译程序,请问采用1字节对齐应该怎样设置
  • 各位大虾帮帮忙,急!!!——有关字节对齐问题
  • Linux下如何实现1字节对齐?
  • linux+arm如何读取非字节对齐的整形变量?
  • 浅析C++字节对齐容易被忽略的两个问题
  • Linux下的字节对齐问题
  • unix下,如何使得结构按1字节进行内存对齐?
  • 问字节对齐的问题
  • 请教字节对齐的疑问
  • 请教,GCC如何将struct alignment设置成为字节对齐啊?
  • 教你5分钟轻松搞定内存字节对齐
  • 弱问Linux下的字节对齐问题
  • 关于C++内存中字节对齐问题的详细介绍
  • socket接收字节数组不成功,请大侠指点迷津
  • 关于shell编程中取字节数的问题,在线等请高手指点。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我是想检查读出的字节和下一字节是不是相等,但从现在的输出来看,它输出的每一个字节都是显示 [B@77d134 ,如何进行字节的比较,用这种
  • InputStream读不了1000个字节后面的字节,怎么回事?
  • wchar_t 2字节?4字节?在线
  • socket程序中read字节个数与write字节个数不同
  • 【请教】read()返回的字节数远远小于write()返回的字节数,接收数据不完整。虚心求解
  • C++多字节字符与宽字节字符相互转换
  • 什么时候可以不用网络字节序
  • 字节序的问题
  • 【提问】关于字节 字的问题
  • 字节码阅读器 JClassLib
  • Fedora 一个汉字占几个字节??
  • linux C 下char类型有几字节呀?
  • 控制shell脚本输出的字节数
  • linux下如何计算8字节双精度浮点数double?
  • 关于字节最齐的默认值问题
  • 大侠来解释下,系统,编译器,与变量字节的关系
  • 一个字符占几个字节?
  • 被TCP协议填充了1000个字节,为什么?
  • 8位 512字节的ecc校验
  • 二进制方式传送文件 影音文件字节数正确 但是播放不了


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3