Erreur C
Résolu
sof_24
Messages postés
146
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'essais de compiler ce programme sous linux:
Le problème c'est que le terminal affiche l'erreur suivante, que j'ai pas pu comprendre et corriger, lors de la compilation:
sdl_test_2.c:18:7: error: expected identifier or `(' before `.' token
monev.user.code=1
^
Aidez moi s'il vous plaît..
J'essais de compiler ce programme sous linux:
#include <stdlib.h> #include <stdio.h> #include <SDL/SDL.h> #include <SDL/SDL_image.h> struct monev{ Uint8 type; int code; void *data1; void *data2; } ; typedef struct monev monev; SDL_Event event; monev.user.code=1 int main(int argc, char *argv[]) { SDL_Surface *ecran = NULL, *zozor = NULL, *zozor1=NULL; SDL_Rect positionZozor, positionZozor1; SDL_Event event; int continuer = 1; int tempsPrecedent = 0, tempsActuel = 0, tempsPrecedent1=0, tempsActuel1=0; SDL_Init(SDL_INIT_VIDEO); ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); SDL_WM_SetCaption("Gestion du temps en SDL", NULL); zozor = SDL_LoadBMP("zozor.bmp"); zozor1=SDL_LoadBMP("zozor.bmp"); SDL_SetColorKey(zozor, SDL_SRCCOLORKEY, SDL_MapRGB(zozor->format, 0, 0, 255)); positionZozor.x = ecran->w / 2 - zozor->w / 2; positionZozor.y = ecran->h / 2 - zozor->h / 2; positionZozor1.x = ecran->w ; positionZozor1.y = ecran->h / 2 - zozor1->h / 2; SDL_EnableKeyRepeat(10, 10); while (continuer) { SDL_PollEvent(&monev); /* On utilise PollEvent et non WaitEvent pour ne pas bloquer le programme */ switch(monev.type) { case SDL_USEREVENT: continuer = 0; break; } tempsActuel = SDL_GetTicks(); if (tempsActuel - tempsPrecedent > 30) /* Si 30 ms se sont écoulées depuis le dernier tour de boucle */ { positionZozor.x++; /* On bouge Zozor */ tempsPrecedent = tempsActuel; /* Le temps "actuel" devient le temps "precedent" pour nos futurs calculs */ } if (SDL_GetTicks()>3000) { tempsActuel1 = SDL_GetTicks()-3000; if (tempsActuel1 - tempsPrecedent1 > 30) /* Si 30 ms se sont écoulées depuis le dernier tour de boucle */ { positionZozor1.x=positionZozor1.x-1; /* On bouge Zozor */ tempsPrecedent1 = tempsActuel1; /* Le temps "actuel" devient le temps "precedent" pour nos futurs calculs */ } SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); SDL_BlitSurface(zozor1, NULL, ecran, &positionZozor1); } SDL_BlitSurface(zozor, NULL, ecran, &positionZozor); SDL_Flip(ecran); SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 255, 255)); } SDL_FreeSurface(zozor); SDL_FreeSurface(zozor1); SDL_Quit(); return EXIT_SUCCESS; }
Le problème c'est que le terminal affiche l'erreur suivante, que j'ai pas pu comprendre et corriger, lors de la compilation:
sdl_test_2.c:18:7: error: expected identifier or `(' before `.' token
monev.user.code=1
^
Aidez moi s'il vous plaît..
A voir également:
- Erreur C
- Erreur 0x80070643 - Accueil - Windows
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
- Comment recuperer whatsapp supprimé par erreur - Guide
3 réponses
Vous avez raison, et je pense que j'ai pas effectué les instructions concernées dans le bon endroitn je dois les mettre dans le main.