keil結構體成員空數組 #94-D: the size of an array must be greater than zero


使用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都不管用。

后來查了這個:https://developer.arm.com/docs/dui0496/k/c-and-c-compiler-errors-and-warnings/list-of-the-armcc-error-and-warning-messages

說是 Zero-sized arrays are permitted only when in --gnu mode

所以加了--gnu,解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM