如何在C ++中处理有关尾部填充数组的警告?

时间:2016-07-06 13:04:41

标签: c++ gcc g++ warnings

我正在编写一个C ++应用程序,它使用一个C库,在其一个标题中定义了一个尾部填充结构。没有太多细节,看起来有点像这样:

struct MyStruct {

    // ... other members

    // The last member, a tail-padding array
    MyType myBuffer[];
}

我将-Wall -Wextra -Wpedantic -Werrorg++-std=c++0x一起使用。

不幸的是,g++给了我关于该数组的警告:

error: ISO C++ forbids zero-size array 'myBuffer' [-Wpedantic]

解决这个问题的正确方法是什么?

我知道我可以通过在标题中添加pragma来抑制警告:

#pragma GCC diagnostic ignored "-Wpedantic"

但这感觉不对。你们有什么建议?

1 个答案:

答案 0 :(得分:0)

你可以

  • 删除零大小的数组。

  • 不使用-Wpedantic构建(可能仅适用于该文件)。

  • 不使用-Werror构建并忽略警告。

  • 将代码构建为C。