我正在编写一个C ++应用程序,它使用一个C库,在其一个标题中定义了一个尾部填充结构。没有太多细节,看起来有点像这样:
struct MyStruct {
// ... other members
// The last member, a tail-padding array
MyType myBuffer[];
}
我将-Wall -Wextra -Wpedantic -Werror
与g++
和-std=c++0x
一起使用。
不幸的是,g++
给了我关于该数组的警告:
error: ISO C++ forbids zero-size array 'myBuffer' [-Wpedantic]
解决这个问题的正确方法是什么?
我知道我可以通过在标题中添加pragma
来抑制警告:
#pragma GCC diagnostic ignored "-Wpedantic"
但这感觉不对。你们有什么建议?
答案 0 :(得分:0)
你可以
删除零大小的数组。
不使用-Wpedantic
构建(可能仅适用于该文件)。
不使用-Werror
构建并忽略警告。
将代码构建为C。