有時我想我們可以指定包大小來指定結構的佈局。如果有任何情況我們必須指定包裝大小,我是否在懷疑?什麼時候應該使用packsize來指定結構佈局?
1
A
回答
3
當您需要內存佈局以完全匹配其他地方定義的二進制格式時,例如。文件格式或網絡協議。
1
一般應該避免。適合的邊緣情況是當使用結構在各種體系結構的機器之間進行通信時(例如在通過網絡傳遞的數據中)。但是即使在這種情況下,您也必須知道您支持的任何對齊問題的體系結構(例如,如果它只允許在四字邊界上進行訪問)。
0
我使用它的唯一時間是當我有一個VB程序調用C++ DLL時。結構HAD匹配或沒有工作。
0
如果你正在談論#pragma pack
,那是用來指定data alignment。如果要獲取結構的大小(例如,用於內存分配),請使用sizeof
運算符。
structSize = sizeof(myStructType);
相關問題
- 1. 什麼時候應該鍵入結構與指向結構的指針?
- 2. 什麼時候應該在佈局中使用dp或sp?
- 3. 在C#中,什麼時候應該使用一個結構,什麼時候應該使用一個類?
- 4. 什麼時候應該使用基於NSDocument的體系結構?
- 5. 什麼時候應該使用AWS,什麼時候不使用
- 6. 什麼時候應該指定CurrentCulture或InvariantCulture,什麼時候應該讓它不指定?
- 7. 什麼時候應該使用Import-Package,什麼時候應該使用Require-Bundle?
- 8. 我應該什麼時候回來?
- 9. 什麼時候應該使用datagrid,何時應該使用datagridview?
- 10. 什麼時候應該使用$(object),何時應該使用$ object?
- 11. 什麼時候應該使用getElementById?
- 12. 什麼時候應該使用_aligned_malloc()?
- 13. 什麼時候應該使用GC.SuppressFinalize()?
- 14. 什麼時候應該使用`use`?
- 15. 什麼時候應該使用didFinishLaunchingWithOptions?
- 16. 什麼時候應該使用模板
- 17. 什麼時候應該使用可可?
- 18. 什麼時候應該使用RESTful?
- 19. 什麼時候應該使用const?
- 20. 什麼時候應該使用git add?
- 21. 什麼時候應該使用html5 sessionStorage?
- 22. 我什麼時候應該使用javax.swing.SwingUtilities.invokeLater()?
- 23. 什麼時候應該使用Solandra
- 24. 什麼時候應該使用*,&,。 , - >?
- 25. 什麼時候應該使用$(document).ready?
- 26. 什麼時候應該使用scala.util.DynamicVariable?
- 27. 什麼時候應該使用流?
- 28. 我什麼時候應該使用UITableViewCellSeparatorStyleSingleLineEtched?
- 29. 什麼時候應該使用FSharpFunc.Adapt?
- 30. 什麼時候應該使用@android:id /?
當你從VB的C++調用時你做了什麼?你需要指定packsize到什麼? – user496949 2012-02-08 23:07:30
我把它們包裝好了,所以沒有在結構中填充......然後它們匹配。我還痛苦地發現VB int與C++ int(當時)的大小不同。結構中項目的大小也必須匹配。 – 2012-02-08 23:18:09