Google協議緩衝區是否與C結構兼容? 我的意思是我可以從C直接讀取序列化文件到結構中而無需反序列化? 或protobuf-c 是唯一的解決方案?與C的二進制兼容性
2
A
回答
6
根據平臺上的對齊,排列順序和結構打包情況,這可能會也可能不會。你可能對你的特定目標感到幸運,但一般來說你應該使用適當的序列化/反序列化例程。
1
由於填充和字節順序問題,您不應該從順序接口(如文件,管道或套接字)讀取/寫入C結構(以及大於char
的任何內置類型)。只能按字段序列化它們並考慮字節順序。
相關問題
- 1. Solaris:libSTLPort.so與libCstd.so的二進制兼容性?
- 2. 二進制兼容性
- 3. Haskell二進制兼容性
- 4. STL容器的二進制兼容性
- 5. 文件的二進制兼容性*
- 6. 二進制兼容性vs向後兼容性
- 7. COM接口和二進制兼容性
- 8. Linux發行版二進制兼容性
- 9. 規避vb6二進制兼容性
- 10. 爲什麼必須將版本兼容性設置爲不兼容二進制兼容性,然後回到二進制兼容性才能使其工作?
- 11. C#插件系統二進制兼容性問題
- 12. 二進制文件和兼容性標準信息 - C++/JAVA
- 13. GCC目標特異性和二進制兼容性
- 14. Sbt插件二進制不兼容
- 15. 爲什麼二進制兼容?
- 16. 什麼是Java中的二進制兼容性?
- 17. Java - 抽象類和子類的二進制兼容性
- 18. 是否更改vb.net break二進制兼容性的目標cpu?
- 19. Java中的重構方法和二進制兼容性
- 20. VS2017和VS2015之間的二進制兼容性
- 21. VS 2010和VS 2010 SP1之間的二進制兼容性C++二進制文件
- 22. Ada變體記錄可以與C++聯合進行二進制兼容嗎?
- 23. 將VS2008編譯與Windows 7兼容的二進制文件
- 24. C++中的全局數組可以打破二進制兼容性嗎?
- 25. avr-gcc 3.4.0與avr-gcc 4.3.x之間的二進制兼容性
- 26. 純虛函數和二進制兼容性
- 27. 清理代碼中斷二進制兼容性
- 28. 虛擬覆蓋和二進制兼容性
- 29. 可以在.NET庫中實現二進制兼容性嗎?
- 30. 如何自動測試二進制兼容性?
因爲NumPy dtype明確指定了位順序,所以沒有字節順序問題 – 2010-11-09 11:46:12
糟糕,我寫了關於NumPy的......是的,你是賴特,我可能會遇到使用Google協議緩衝區的位順序問題 – 2010-11-09 11:48:57