2016-05-30 91 views
-2

我正在用gcc-arm-none-eabi编写C语言的arm cortex cpu。我知道这是由测试和谷歌4字节对齐。手臂有多少个字节对齐?

但是,有没有任何宏或变量,它定义了它有多少字节对齐?我需要知道的情况下,有一天这个程序可能是另一个CPU的端口。

+0

看一看[的#pragma包(N)](HTTPS:// GCC .gnu.org/onlinedocs/gcc-4.8.4/gcc/Structure-Packing-Pragmas.html) – LPs

+3

没有单一对齐方式。不同的数据类型有不同的对齐方式。 – EOF

+0

对齐与可移植性没有多大关系。 – user3528438

回答

1

甲特技找到特定数据类型的取向是与一个char包装它在一个结构:

#define LONG_ALIGNMENT (sizeof (struct {char a, long b}) - sizeof (long)) 
#define INT_ALIGNMENT (sizeof (struct {char a, int b}) - sizeof (int))