KEIL для C51 и есть некоторые проблемы с ошибкой, такие как синтаксическая ошибка рядом с неподписанным
Я работаю с 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): ошибка C141: синтаксическая ошибка рядом с "unsigned". Я понятия не имею, почему это произойдет! Большое спасибо!
2 ответа
Решение
Объявите ваши переменные перед любым другим кодом в начале функции:
void main()
{
uchar a,i,j;
SCON=0x10;
while(1){
/* ... */
Это старый предел компилятора C, который никогда не был удален в Keil C51.
нам нужно поместить этот код
uchar a,i,j;
на первое место среди всех ваших кодов, потому что компилятор C Кейла настолько стар, что кажется немного глупым. Вот почему мы должны объявлять наши переменные перед любым другим кодом в начале функции.