我正在使用Keil编写80C51,并使用C51进行编码。然而,我在编写过程中遇到了一些问题。我的代码如下所示:
#include <reg51.h>
#define uchar unsigned char
#define LED P2
sbit SH=P0^0;
sbit DATA=P3^0;
sbit CLK=P3^1;
void main()
{
SCON=0x10;
uchar a,i,j;
while(1){
a=0;
SH=0;
SH=1;
for (i=0;i<8;i++){
CLK=0;
for (j=0;j<500;j++);
DATA=0;
CLK=1;
for (j=0;j<500;j++);
a=a<<1;
a=a+(uchar)DATA;
}
LED=a;
}
}但是编译器显示了lab7.c(13):error C141:语法错误在“unsigned”附近。我不知道为什么会发生这种事!非常感谢!
发布于 2015-12-03 19:31:27
在函数开始时,在任何其他代码之前声明变量:
void main()
{
uchar a,i,j;
SCON=0x10;
while(1){
/* ... */这是一个老的C编译器限制,在Keil C51中从未删除过。
https://stackoverflow.com/questions/34071199
复制相似问题