پرش به محتوای اصلی
نماتک
Namatek logo
حل شده

بررسی علت بروز پیغام خطای « unexpected ';' before » و نحوه ی برطرف کردن آن

تصویر محمدحسین خلیلیمهارت‌جومحمدحسین خلیلیپرسیده شده ۱ سال پیش۲۷ بازدید۱ پاسخ
سلام مهندس وقت بخیر

با این ارور موقع تمرین مواجهه شدم و نتونستم برطرفش کنم…

ظاهرا چیزی که میگه داخل کد رعایت شده ولی بازم این ارور رو میده

ارور :

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

پاسخ منتخب

تصویر مهراد معیناستادمهراد معین· ۱ سال پیش
پاسخ منتخب
سلام دوست عزیز، من یکسری مشکل در کد میبینم که اینجا میگم. اونها رو برطرف کنید و مجدد امتحان کنید. در بسیاری از مواقع، اروری که نمایش داده میشه ارور اصلی نیست و مشکل از همون خطی که ارور مشخص میکنه نیست و از جای دیگری هست.

در #ifndef __ snake_h__ یک فاصله اضافه بعد از ــ وجود داره که باید برطف بشه همینطور برای خط بعد

در #define left 0 ; نباید تهش ; داشته باشه همینطور برای همه define های دیگه

به جای int static از static int باید استفاده بشه

در void moveSnake (void); یک فاصله اضافه وجود داره
  • تصویر محمدحسین خلیلیمهارت‌جومحمدحسین خلیلی· ۱ سال پیش
    سلام مهندس

    ممنون از پاسخ گویی تون

    مواردی که گفتید رو برطرف کردم ولی همچنان ارور میده

    فکر میکنم مشکل از وارنینگ هایی هست که کد داره و من بهشون بی توجهی کردم… تقریبا ۳۰تایی هستن…

پاسخ‌ها (۱)

    پاسخ شما

    برای پاسخ دادن به این سوال وارد شوید.