錯誤代碼:
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標准的編譯器,在函數定義的內部,必須把所有的局部靜態變量和自動變量都聲明/定義了之后,然后才能開始后續的代碼書寫,否則編譯器會報錯,將代碼更改如下后,編譯正確。
1 typedef unsigned char uchar 2 uchar KeyRowColumnScan() 3 { 4 uchar key_value = 0; // 必須在函數開始出定義所有變量 5 GPIO_KEY = 0x0f; 6 // 省略 7 return key_value; 8 }