1
Q
C結構對齊
A
回答
3
如果您不想對齊成員的結構(即沒有成員之間的任何填充),與gcc
您可以使用packed
屬性:
struct bla
{
int x;
char y;
} __attribute__((__packed__));
或使用pack
pragma
:
#pragma pack(1)
struct bla
{
int x;
char y;
};
#pragma pack()
或使用-fpack-struct
選項進行編譯。
您還可以強制整個結構的最小對齊方式爲aligned
屬性,但據我所知,您不能禁用整個結構與gcc
的對齊方式。
相關問題
- 1. C++對齊結構
- 2. C結構對齊
- 3. C vs C++結構對齊
- 4. C結構的對齊
- 5. C結構大小對齊
- 6. C++/CLI結構/類對齊
- 7. 結構對齊
- 8. C結構中的對齊/填充
- 9. c結構的64位對齊/填充?
- 10. C#P /調用結構對齊
- 11. 結構與對齊成員的C++對齊
- 12. 與PyOpenCL結構對齊
- 13. 結構對齊問題
- 14. 結構對齊建議?
- 15. 數據結構對齊
- 16. 訪問未對齊的結構構件
- 17. 性能C結構對C++結構/
- 18. 用於確定C/C++結構中元素對齊的算法
- 19. 如何對齊結構的數組,每個需要對齊(SSE)
- 20. 結構對準C/C++
- 21. 對齊的12字節結構 - CUDA
- 22. 結構不正確對齊:System.TypeLoadException
- 23. 64位機器上的結構對齊
- 24. 對齊SSE的模板向量結構
- 25. 結構成員與_Alignas對齊
- 26. 嵌套結構/數組的LLVM對齊
- 27. 內存對齊和結構的大小
- 28. 如何對齊結構的元素?
- 29. 與結構對齊相關的EXC_BAD_ACCESS?
- 30. 內存對齊結構tbb vs atomic_ops
適用於Linux GCC over ARM CPU :) 任何想法,如果這是超越gcc便攜式? – Nick
@Nick屬性或編譯指示是編譯器擴展,並且依賴於實現。大多數編譯器都有這樣的擴展,但是從編譯器到編譯器不同。 – ouah
當然。這就是爲什麼我不尋求超越海灣合作委員會的兼容性 – Nick