class 中的 C++ 结构中的 Pragma

Pragma in c++ struct in class

我有一个关于在 C++ classes 中使用 pragma 的问题。 我在那里读到 (Use of #pragma pack on a class) 不推荐在 c++ class 周围使用 pragma,但我可以像这样使用 pragma 吗:

class TestClass {
  public:
    ConfigProtocol();

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

};

不会出错吗?

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

您使用 pragma 的方式只影响使您链接到的 Whosebug 答案中的参数无效的结构:只要结构保持为结构,结构就不会发生重大变化。