Keil C51編譯報錯error C141: syntax error

錯誤代碼:

 

1 typedef unsigned char uchar
2 uchar KeyRowColumnScan()
3 {
4     GPIO_KEY = 0x0f;
5     uchar key_value = 0; // 報錯行
6     // 省略
7     return key_value;
8 }

 

錯誤信息:

key_array.c(44): error C141: syntax error near ‘uchar’函數

錯誤緣由:

因爲Keil、ADS等某些遵循老的C標準的編譯器,在函數定義的內部,必須把全部的局部靜態變量和自動變量都聲明/定義了以後,而後才能開始後續的代碼書寫,不然編譯器會報錯,將代碼更改以下後,編譯正確。spa

1 typedef unsigned char uchar
2 uchar KeyRowColumnScan() 
3 {
4     uchar key_value = 0;  // 必須在函數開始出定義全部變量
5     GPIO_KEY = 0x0f;
6     // 省略
7     return key_value;
8 }
相關文章
相關標籤/搜索