在keil中編譯程序時提示:error: #268: declaration may not appear after executable statement in block 錯誤,
說是聲明不能在執行語句后,也就是說變量的聲明寫在了使用語句的后面,導致程序在編譯鏈接時,
使用到該變量的語句找不到這個變量,故出錯。
這其實與keil所采用的標准有關,Keil5(版本是5,14.2)默認采用C89標准,
//報錯代碼 flag = 0; u16 i = 0;
這個標准要求在編寫程序時變量不能放在函數體中間,只能在函數最開始定義或聲明變量。如何修改呢?
方法1
將變量都放在函數最開頭,且注意變量在函數體中出現的先后順序,應該按照后面使用的順序進行定義或聲明變量,否則仍會報同樣的錯。
//修改代碼
u16 i = 0;
flag = 0;
方法2
將keil的標准改為C99,重新編譯即可。如圖所示,在option的C/C++標簽中勾選上C99 Mode 選項(在中間右側)。
方法3