3
A
回答
6
它具有確切對類的影響與對結構的影響相同,影響數據成員的對齊。
實際上在班上使用它非常不尋常,幾乎總是一個錯誤。 C++類對象的佈局是嚴格定義的。 C++編譯器通常會努力優化該佈局,並在可能時刪除v-table指針。當類使用多重繼承時可能會添加一個。因此,對類聲明稍作修改,如製作方法虛擬或添加基類可以顯着改變對象佈局。這當然會破壞依賴於該編譯指示的代碼。就像序列化爲二進制文件的對象不會正確反序列化一樣。總的來說,也是一種不好的做法,但無論如何總是發生。不要使用它。
相關問題
- 1. C++ #pragma pack
- 2. Valgrind和「#pragma pack(2)」
- 3. #C++中的#pragma pack
- 4. 什麼禁用#pragma pack(push)?
- 5. #pragma pack(16)和#pragma pack(8)的效果總是一樣嗎?
- 6. #使用GCC的#pragma pack(顯示)
- 7. iphone上的pragma pack(push)
- 8. 如何追溯#pragma pack?
- 9. #pragma pack()調用有什麼作用?
- 10. VB6是否有等效的#pragma pack?
- 11. 爲什麼VC++中的#pragma pack使用堆棧?
- 12. 在c中使用#pragma pack但無法理解
- 13. Pragma Pack使用導致jvm崩潰的C庫
- 14. Pragma在C++結構類中
- 15. python ctypes pragma pack用於字節對齊的讀取
- 16. 在Solaris和Linux上使用#pragma pack(1)時的結構大小差異
- 17. 什麼是網絡預設電臺'的#pragma pack`呢?
- 18. 的#pragma pack()的與推入和彈出VS解壓
- 19. 用C使用#pragma節
- 20. 使用SQLAlchemy SQLite PRAGMA foreign_keys
- 21. Xcode - 使用#pragma標記
- 22. INLINE Pragma與類型組合
- 23. 用例的#pragma開始和#pragma退出
- 24. #pragma init和#pragma fini在linux上使用gcc編譯器
- 25. 在VS 2008/2010中控制尾隨結構填充? (#pragma pack不夠好)
- 26. 錯誤:無法使用地址來初始化打包結構的字段(#pragma pack)
- 27. WPF pack:/ [assemblyName]; component/... vs pack:// application:,,,/[assemblyName]; component/...?
- 28. 如何使用jquery 1.0.pack調用webservice?
- 29. 在Razor視圖中使用#pragma語句
- 30. Pragma在跨DLL中的使用