2016-01-22 76 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答案中所做的参数无效:只要结构保持不变,结构不会发生显着变化。