使用keil編譯一個結構體,有空數組:
1 #pragma pack(1) 2 typedef struct //TUIM指令結構 3 { 4 u16 stat; //指令的狀態,0:等待執行,1:已發送,2:超時,3:正確執行,其他錯誤 5 u16 buflen; //指令數據區長度,若為0,說明是用戶自己定義的,不釋放。 6 u16 n; //發送數據長度 7 TUIM_CMD_CB cb; //接收回調函數,0為不要接收 8 u8 p[0]; //指令指針 9 } TUIM_CMD; 10 #pragma pack()
結果報了 error: #94-D: the size of an array must be greater than zero
不讓用空數組,加了--cpp11和c99都不管用。
說是 Zero-sized arrays are permitted only when in --gnu mode
所以加了--gnu,解決