在C,柔性陣列構件的語法如下:在struct中這個`data [0]`聲明的目的是什麼?
struct s
{
int n;
double d[]; // flexible array member
};
而且,零尺寸數組中C.
非法如果我聲明陣列是這樣的:
struct s
{
double d[0]; // Zero size array
};
GCC給出警告:
warning: ISO C forbids zero-size array 'd' [-Wpedantic]
所以,我要談我的主要問題。
我看到下面的代碼here。
struct squashfs_xattr_entry {
__le16 type;
__le16 size;
char data[0];
};
在C零大小數組非法。
然後,
- 什麼是結構這個
data[0]
聲明的目的是什麼? data[0]
在這裏做什麼?
@chux特別是GNU GCC和Clang。然而,M $ VC拒絕零長度數組。 – iBug
所以你甚至沒有谷歌有多少重複呢?! –