我最近整合了兩個在不同硬件體系結構上運行的應用程序,其中出現的問題包括網絡字節排序問題和結構填充問題。位字段和編譯指示
兩人都是很容易解決 - 用於填充具體而言,我不得不在我的網絡結構中添加編譯指示像這樣:
#pragma pack(1)
struct {};
#pragma pack(0)
我看見有幾個與位域的問題,昨天,雖然我有沒用過。我想知道...通過使用位域定義結構來嘗試停止填充會更合適嗎?這在這種情況下會有所幫助嗎?
此外,我還沒有在C++代碼中遇到過很多bitfields - 它們更像是一個C函數,它沒有被使用太多,或者只是碰巧在不使用它們的代碼上工作?
你只是沒有碰巧在使用位域的代碼上工作。 **在適當的地方非常有用**。他們適當的地方雖然很少,但具體。 –