考慮下面的C代碼更大:對準 - 數組元素的對齊比元件尺寸
typedef __attribute__((aligned(16))) signed int INT32;
int main(int argc, char* argv[], char* envp[])
{
INT32 my_array[255];
return 0;
}
編譯它返回錯誤:
alignment_problem.c: In function ‘main’:
alignment_problem.c:7:2:error: alignment of array elements is greater than element size
INT32 my_array[255];
我有不是編譯程序由於這個錯誤。
有沒有一種方法來定義INT32
的對齊方式將工作?
我知道clang
編譯這段代碼時沒有錯誤,但我想知道是否有辦法用gcc
編譯代碼。
編輯:問題是,typedef INT32
是一個大的程序之一。所以我正在尋找的解決方案是改變INT32
的定義,以便程序能夠編譯和運行。
您打算讓陣列的每個元素都在16字節邊界上對齊嗎? –
這是一個關於gcc的問題。標記爲gcc。 – alinsoar