2016-01-22 83 views
1

我有一個關於在C++類中使用編譯指示的問題。 我讀過那裏(Use of #pragma pack on a class)周圍使用編譯C++類是不推薦的,但我可以用編譯如下:Pragma在C++結構類中

class TestClass { 
    public: 
    ConfigProtocol(); 

    #pragma pack(1) 
    struct t_config_header { 
     quint8 version; 
     quint8 da; 
     quint16 sa; 
     quint16 counter; 
    }; 
    #pragma pack() 

}; 

那會不會搞錯?

回答

2

簡答:是的,你可以(在你的情況,因爲它似乎你正在實施通信協議,事實上,應該)做到這一點。

您使用的編譯指示的方式隻影響結構,它使您在鏈接到的StackOverflow答案中所做的參數無效:只要結構保持不變,結構不會發生顯着變化。