如果類is_standard_layout足夠保證給定的非靜態數據成員始終與對象的地址具有相同的偏移量(即在整個流程範圍內該類的不同實例中相同)?standard_layout類的數據成員是否具有對象地址的固定偏移量?
1
A
回答
2
這對於任何類型的對象(在程序中)都是有效的。訪問子對象是通過編譯時已知的偏移量和機器碼中的常量來實現的。對於SL類型,您可以通過offsetof
進行驗證 - 這可以保證適用於標準佈局類型,基本上意味着統一的偏移量。
相關問題
- 1. 如何使用「COUT」打印數據成員的地址(類偏移)
- 2. 對象和結構成員的訪問和地址偏移計算
- 3. 是一個指向數據成員的偏移量?
- 4. 成員變量的C++偏移量?
- 5. 指向成員的偏移量
- 6. C函數是否保證有固定的內存地址?
- 7. 矢量的第一個元素的地址是否固定?
- 8. 段的絕對地址:偏移轉換
- 9. C地址偏移
- 10. C++類的成員變量知道其自己的偏移
- 11. 如何獲取COM對象的成員函數的地址?
- 12. 如何確定某個類是否具有特定的模板成員函數?
- 13. 向dma_buf_addr的地址添加偏移量的用法是什麼?
- 14. 如何查找具有負偏移的基本結構地址
- 15. C++對象,成員的內存位置偏移
- 16. 類的對象可以是其他類的成員變量嗎?
- 17. 是否有一個屬性會隱式假定具有DataContract的類的所有成員都是數據元?
- 18. 如何通過偏移量訪問私有數據私有成員?
- 19. 對象具有與成員函數C++不兼容的類型限定符
- 20. 計算段:從絕對地址偏移
- 21. 具有多個偏移量的WriteProcessMemory C++
- 22. C++設置具有const成員的成員對象
- 23. C++專家:是在這些條件下,成員變量對類常量的偏移量?
- 24. 找出對象是否具有特定的類作爲祖先
- 25. 鍵入traits以檢查類是否具有成員函數
- 26. 在C++中,是否有任何方法來減少具有移動語義的成員函數的數量?
- 27. Python:變量是否存儲對象的地址?
- 28. SFINAE - 嘗試確定模板類型是否具有「變量」返回類型的成員函數
- 29. 成員變量是否像對象的特徵?
- 30. 鏈接:使虛擬地址對應於文件偏移量
我認爲這也取決於字的大小和對齊。 –
@讚歌傑我的意思是隻有一個流程範圍的保證。將編輯。 – Museful