3
A
回答
0
Offsetof是一個特點,就是隻爲了與C兼容的C++標準,以便它不reccomended用C字
0
使用我不會推薦它的任何東西,除非你真的需要。只要您的使用在C中有效,它應該對C++有效。不知道你在做什麼,你的問題是不可能回答的。
0
不,不是。
適當的C++
風格鼓勵用戶儘可能避免所有低級細節。這是爲了安全/正確性和可讀性。只有當低級操縱能夠保證真實和顯着的性能提高時,才能跳入其中。
0
之一offsetof()
的用法是在類C具有代碼結構具有固定報頭和可變大小的數組,像在這個博客帖子解釋:
(注這個博客文章使用了宏觀的FIELD_OFFSET
,這是一個Windows主題,對應於offsetof()
。)
我認爲在現代C++中我們應該使用高級技術和代碼,如std::vector
可變大小陣列。
1
C++有指向成員的指針。這些類似於偏移量,但(1)類型安全和(2)更通用 - 它們也可以與基類中的方法一起使用等。
相關問題
- 1. Legacy使用C/C++中的宏offsetof
- 2. 在C++中嵌套C結構的offsetof()
- 3. 在c中使用浮點數offsetof
- 4. 關於C#語法和VB
- 5. 關於Linux中的C/C++
- 6. 關於Xcode4和C++
- 7. 關於?和:在C++
- 8. 關於用C
- 9. 關於用C
- 10. 關於用C
- 11. 關於用C
- 12. 關於用C
- 13. 關於用C
- 14. 關於用C
- 15. 關於用C
- 16. 關於用C
- 17. 關於C++中
- 18. 關於C++和.NET兼容性的C#
- 19. C++關於引用的方法
- 20. 關於C++中的make_heap算法
- 21. 關於在C/C++
- 22. 關於C++中的結構和指針
- 23. 關於C++/CLI和C#集成
- 24. 關於使用C
- 25. 關於使用ManualResetEvent用法c#?
- 26. 關於C#和繼承
- 27. C++關於multisets和數組
- 28. 關於p2p連接和c#
- 29. 關於在msvc中實現offsetof的困惑?
- 30. 關於用C的scanf
offsetof [可用於C++](http://stackoverflow.com/ a/19943445/1708801),其限制條件是:如果type不是標準佈局類(第9章),則結果是未定義的和將offsetof宏應用於靜態數據字段的結果 成員或一個函數成員是未定義的。「 –
你應該仔細問自己爲什麼你需要「offsetof」宏的功能。它在C++中可用,但它會給非POD結構和類帶來意想不到的結果。如果你不知道什麼是POD,那麼你最好不要在C++代碼中使用它。除非你有很好的理由,否則最好不要在C代碼中使用它。 – gnasher729
爲什麼每個人都不鼓勵它的使用?在計算內聯彙編的偏移量或計算可以改變的POD結構的偏移量(Winternl.h中的WINAPI的TEB結構)時,以及計算x32與x64代碼中的偏移量而不對硬編碼偏移量時,該函數非常有用。 – Brandon