Keil C51编译报错error C141: syntax error

Posted 米兰de小铁匠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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标准的编译器,在函数定义的内部,必须把所有的局部静态变量和自动变量都声明/定义了之后,然后才能开始后续的代码书写,否则编译器会报错,将代码更改如下后,编译正确。

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

 

以上是关于Keil C51编译报错error C141: syntax error的主要内容,如果未能解决你的问题,请参考以下文章

Keil C51 在编译时不会为结构指针分配内存

Keil关于.axf文件报错

keil 4编译C51程序出现警告:UNRESOLVED EXTERNAL SYMBOL SYMBOL: DATA 求解释。

Keil C51 编译错误 undefined identifier

keil c51编译器怎么有的文件出错时,双击错误提示没有定位到错误行,有的文件就可以,怎么回事

在keil环境中遍了一段C51的程序后怎么编译?