2016-05-30 86 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))