我将unsigned char tmp[];
定义为一个结构的成员。
在Linux上使用g++4编译时,它不会抱怨。但是,在Solaris 5.10机器上使用Sun C++编译时,我会得到一个错误:
错误:在此声明中,"
tmp
“是不完全类型的"unsigned char[]
”。
Sun C++是否有任何编译选项可使其编译?
我读过关于不完整类型的文章,是否应该将其更改为指针?这是有问题的,因为我有很多相同的定义。为什么编译结果是不同的?
发布于 2017-11-02 07:12:52
给出密码
struct
{
...,
char tmp[];
};
tmp
是柔性阵列构件。
这是一个C语言的构造,是在C++中直到C++14才有效,但作为一个扩展由GCC支持。
The 选项。
注意,零长度数组,如
struct
{
...,
char tmp[ 0 ];
};
与灵活数组成员不同,您的Studio编译器版本可能不支持-features=zla
选项。是例如,Solaris Studio 12.2不支持。
https://stackoverflow.com/questions/47058431
复制相似问题