Problème de portée des fonctions. [C]
Fermé
lagarkane
-
21 juil. 2010 à 23:37
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 22 juil. 2010 à 22:00
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 22 juil. 2010 à 22:00
A voir également:
- Problème de portée des fonctions. [C]
- Portee wifi - Guide
- Codes secrets Android : accéder aux fonctions cachées - Guide
- Augmenter la portée d'un signal bluetooth - Forum Bluetooth
- Wifi hors de portée - Forum Réseau
- Ombre portée illustrator - Forum The Gimp
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
22 juil. 2010 à 08:41
22 juil. 2010 à 08:41
Les headers inclus dans les fichiers sources doivent contenir à minima l'ensemble des prototypes des fonctions utilisées dans le fichier source. Si tu ne respectes pas cette règle, ton compilateur ralera.
Si tu penses respecter cette règle, merci de poser le code source de :
du fichier contenant la fonction qui appelle fonction_x,
du header contenant le prototype de fonction_x,
et du fichier contenant la déclaration de fonction_x.
Et pour chacun de ces fichiers, n'oublie pas de donner le nom du fichier.
Cdlt,
Si tu penses respecter cette règle, merci de poser le code source de :
du fichier contenant la fonction qui appelle fonction_x,
du header contenant le prototype de fonction_x,
et du fichier contenant la déclaration de fonction_x.
Et pour chacun de ces fichiers, n'oublie pas de donner le nom du fichier.
Cdlt,
Ok, effectivement, maintenant ca marche =)
En fait, sur le site du zero, Mateo explique qu'il faut un fichier.h pour chaque fichier.c..
J'en avais donc déduit qu'il fallait un .h spécifique à chaque fichier, mais en créant un .h et en y mettant toues les structures et tous les prototypes, ca marche très bien.
Par contre, tous les includes et les defines doivent aussi être dans le .h, sinon ca bug, je suppose que c'est normal.
J'aimerai quand même vous poser une dernière question, hors sujet, mais qui m'intrigue et me pose de gros problèmes :/ :
J'ai créé une fonction de découpe de mes sprites, que voici:
J'ai tout controlé des dixaines de fois, ce code est sencé me créer des rectangles parfaitement ajustés pour l'affichage de mes sprites, et pourtant, quand je compile mon projet, il m'affiche aléatoirement un bout du sprite, et c'est jamais le bon!
Mon sprite est un .gif composé de textures de 70*70px, collées les unes aux autres sans espaces, pour faciliter la découpe.
Je sais pas ce qui plante, mais il y a vraiment un gros problème! ^^'
En fait, sur le site du zero, Mateo explique qu'il faut un fichier.h pour chaque fichier.c..
J'en avais donc déduit qu'il fallait un .h spécifique à chaque fichier, mais en créant un .h et en y mettant toues les structures et tous les prototypes, ca marche très bien.
Par contre, tous les includes et les defines doivent aussi être dans le .h, sinon ca bug, je suppose que c'est normal.
J'aimerai quand même vous poser une dernière question, hors sujet, mais qui m'intrigue et me pose de gros problèmes :/ :
J'ai créé une fonction de découpe de mes sprites, que voici:
void decouperSpriteTexture(Textures *texture) { int SPRITE_WIDTH, SPRITE_HEIGHT = 70; int i = 0; for(i = 0 ; i < 3 ; i++) { texture->GiftWall[i].x = SPRITE_WIDTH*i; texture->GiftWall[i].y = SPRITE_HEIGHT*2; texture->GiftWall[i].w = SPRITE_WIDTH; texture->GiftWall[i].h = SPRITE_HEIGHT; texture->BreakingWall[i].x = SPRITE_WIDTH*i; texture->BreakingWall[i].y = SPRITE_HEIGHT*3; texture->BreakingWall[i].w = SPRITE_WIDTH; texture->BreakingWall[i].h = SPRITE_HEIGHT; } texture->BreakableWall.x = 0; texture->BreakableWall.y = 0; texture->BreakableWall.w = SPRITE_WIDTH; texture->BreakableWall.h = SPRITE_HEIGHT;; texture->NuclearWall.x = SPRITE_WIDTH*3; texture->NuclearWall.y = 0; texture->NuclearWall.w = SPRITE_WIDTH; texture->NuclearWall.h = SPRITE_HEIGHT; texture->SolidWall.x = 0; texture->SolidWall.y = SPRITE_HEIGHT; texture->SolidWall.w = SPRITE_WIDTH; texture->SolidWall.h =SPRITE_HEIGHT; texture->Ground.x = 0; texture->Ground.y = SPRITE_HEIGHT*2; texture->Ground.w = SPRITE_WIDTH; texture->Ground.h = SPRITE_HEIGHT; }
J'ai tout controlé des dixaines de fois, ce code est sencé me créer des rectangles parfaitement ajustés pour l'affichage de mes sprites, et pourtant, quand je compile mon projet, il m'affiche aléatoirement un bout du sprite, et c'est jamais le bon!
Mon sprite est un .gif composé de textures de 70*70px, collées les unes aux autres sans espaces, pour faciliter la découpe.
Je sais pas ce qui plante, mais il y a vraiment un gros problème! ^^'
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 843
22 juil. 2010 à 22:00
22 juil. 2010 à 22:00
En fait, ce n'est pas forcément un header par fichier source. La règle c'est plutôt un header par bloc fonctionnel à l'instar de stdio.h qui contient les prototypes des fonctions d'entrée/sortie. En pratique, comme on fait aussi un fichier source par bloc fonctionnel, on rejoint la remarque de mateo, bien qu'il s'agit d'un raccourci.
Concernant le code, je ne saurais t'aider, je ne connais pas la SDL.
Cdlt,
Concernant le code, je ne saurais t'aider, je ne connais pas la SDL.
Cdlt,