结构体 字节对齐 __align() __attribute((aligned (n))) #pragma pack(n)

ARM 267浏览
#pragma pack(4)
struct mystu
{
	char a ;
	int  b ;
};
#pragma pack()

GCC推荐的对齐指令如下:

_attribute_((packed))和_attribute_((aligned(n)))

 

armcc一般是专门针对arm芯片开发时用的编译器,语法除了遵守标准C语法外,还支持arm体系下特有的语法规则。gcc应用范围场景比较广泛,可以是gcc for x86、gcc for arm,gcc for mips等等,也就是说gcc是在GNU协议下的一款多用途跨平台的开源编译器。gcc功能特强,应用范围特广,可以这么说只要涉及到C/C++语言开发、Linux开发、开源软件开发、嵌入式开发等等领域的,没有不会不用到GCC的。

 

  struct stu{
   char sex;
   int length;
   char name[10];
  }__attribute__ ((aligned (1))); 
#define GNUC_PACKED __attribute__((packed))
struct PACKED test
{
char x1;
short x2;
float x3;
char x4;
}GNUC_PACKED;

__attribute__((packed))得变量或者结构体成员使用最小的对齐方式,即对变量是一字节对齐,对域(field)是位对齐.