Keil (MDK)中變量定義位置


在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


免責聲明!

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



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