类中的 c++ 结构中的杂注

Pragma in c++ struct in class

本文关键字:c++ 结构      更新时间:2023-10-16

我有一个关于在 c++ 类中使用编译指示的问题。我在那里读到(在类上使用 #pragma 包)不建议在 c++ 类周围使用编译指示,但我可以使用这样的编译指示:

class TestClass {
  public:
    ConfigProtocol();
    #pragma pack(1)
    struct t_config_header {
      quint8 version;
      quint8 da;
      quint16 sa;
      quint16 counter;
    };
    #pragma pack()
};

会不会是错了?

简短回答:是的,你可以(在你的情况下,看起来你正在实施一个通信协议,事实上,应该)这样做。

您使用编译指示的方式只会影响结构,该结构会使您链接到的 StackOverflow 答案中的参数无效:只要结构保持结构,它就不会发生显着变化。