Keil C UV3.0 環境下,有AB兩個函數。
A函數中有如下代碼:
定義局部變量i;
if(局部變量i > 全局變量K)
{
。。。。。。
}
B函數中有如下代碼:
定義局部變量i;
if(局部變量i > 全局變量K)
{
。。。。。。
}
運行時發現,A函數可以正確執行,而B函數不可以。沒有辦法,只得將B函數改爲兩個全局變量比較才能正確執行。
現在分析,可能是keil C的buger。客觀條件,該代碼定義了比較多的全局變量,也許是誘發了Keil C的bugger。希望代碼比較大的時候(這次出問題的代碼容量8K),各位同仁小心處理全局變量與局部變量的“直接對話”。另外選擇了8級代碼優化。