سلام مهندس وقت بخیر
با این ارور موقع تمرین مواجهه شدم و نتونستم برطرفش کنم…
ظاهرا چیزی که میگه داخل کد رعایت شده ولی بازم این ارور رو میده
ارور :
snake.c(42): error: unexpected ';' before ')'
42 | if( gameTickCounter > gameTickCounterThreshold ){
کد فایل snake.c :
#include "snake.h"
uint8_t screen[64]=
{
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0
};
uint8_t snake[64]=
{
24,25,26,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0
};
char snakeHead= 0;
char snakeTail= 0;
char SnakeColor= RED;
char snakeLength = 3;
char snakeDirection = down;
void moveSnake (void){
my_PutS("hello");
}
void gameTick(void){
int static gameTickCounter = 0 ;
gameTickCounter++;
//اینجا ارور میده
if( gameTickCounter > gameTickCounterThreshold ){
gameTickCounter =0;
moveSnake();
}
screenRender( screen, YELLOW);
}
کد فایل snake.h :
#ifndef __ snake_h__
#define __ snake_h__
#include "stdint.h"
#include "DOTMATRIX.h"
#include "UART.h"
#define left 0 ;
#define right 1;
#define up 2;
#define down 3;
#define gameTickCounterThreshold 1000;
void gameTick(void);
void moveSnake (void);
#endif
حل شده
بررسی علت بروز پیغام خطای « unexpected ';' before » و نحوه ی برطرف کردن آن
پاسخ منتخب
سلام دوست عزیز، من یکسری مشکل در کد میبینم که اینجا میگم. اونها رو برطرف کنید و مجدد امتحان کنید. در بسیاری از مواقع، اروری که نمایش داده میشه ارور اصلی نیست و مشکل از همون خطی که ارور مشخص میکنه نیست و از جای دیگری هست.
در #ifndef __ snake_h__ یک فاصله اضافه بعد از ــ وجود داره که باید برطف بشه همینطور برای خط بعد
در #define left 0 ; نباید تهش ; داشته باشه همینطور برای همه define های دیگه
به جای int static از static int باید استفاده بشه
در void moveSnake (void); یک فاصله اضافه وجود داره
محمدحسین خلیلی· ۱ سال پیش
سلام مهندس ممنون از پاسخ گویی تون مواردی که گفتید رو برطرف کردم ولی همچنان ارور میده فکر میکنم مشکل از وارنینگ هایی هست که کد داره و من بهشون بی توجهی کردم… تقریبا ۳۰تایی هستن…
پاسخها (۱)
پاسخ شما
برای پاسخ دادن به این سوال وارد شوید.