Keil MDK不支援結構體對指定元素初始化

2021-08-09 19:13:19 字數 556 閱讀 1661

結構體對指定元素初始化就是類似下面的操作:

struct test

;struct test t =

;

這樣就能不按照結構體中的元素順序對結構體進行初始化,這種方式在linux核心**中使用的很多很多,但是在keil mdk中使用卻報錯:「expected an expression」。其實就是編譯器不支援c99標準,我們可以開啟c99模式讓編譯器支援c99標準:

在misc controls中新增–c99即可,如果使用的是mdk5的話在上面會有乙個c99 mode選項,選上即可。參考:

開啟了c99模式之後可能會出現一些錯誤是因為原來的**不符合c99的標準,例如函式返回型別如果是void的話在可以不用寫void,但是c99模式下會報錯,需要加上void才行,再如c99允許在函式中間定義變數,而沒使用c99之前的的c標準是不支援在函式中間定義變數的,只能在函式的最開始定義所有變數,這點上我還是更喜歡c99標準的!!!。

不支援對系統目錄進行即席更新

如果 allow updates 選項被設定為 1 那麼你在使用語句 exec sp configure show advanced options 1 goreconfigure 沒有加上with override,就會出現提示的錯誤 go 所以,如果你要解決問題,有兩個方法 sp configu...

MSSQL資料庫提示 不支援對系統目錄進行即席更新

不支援對系統目錄進行即席更新 如果 allow updates 選項被設定為 1 那麼你在使用語句 exec sp configure show advanced options 1 goreconfigure 沒有加上with override,就會出現提示的錯誤 go 所以,如果你要解決問題,有...

ora32773 不支援對小檔案表空間的操作

1 新建資料庫時系統表空間設定的太大,想收縮表空間大小,執行如下語句報錯 ora32773 不支援對小檔案表空間的操作。alter tablespace system resize 1024m 2 在確認收縮表空間後的大小大於資料量大小後,執行如下操作收縮表空間 select t.file id,t...