Keil C51编译报错error C141: syntax error

时间:2023-03-08 22:02:32

错误代码:

 typedef unsigned char uchar
uchar KeyRowColumnScan()
{
GPIO_KEY = 0x0f;
uchar key_value = ; // 报错行
// 省略
return key_value;
}

错误信息:

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

错误原因:

由于Keil、ADS等某些遵循老的C标准的编译器,在函数定义的内部,必须把所有的局部静态变量和自动变量都声明/定义了之后,然后才能开始后续的代码书写,否则编译器会报错,将代码更改如下后,编译正确。

 typedef unsigned char uchar
uchar KeyRowColumnScan()
{
uchar key_value = ; // 必须在函数开始出定义所有变量
GPIO_KEY = 0x0f;
// 省略
return key_value;
}