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 }