LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009
-
28 mars 2011 à 13:15
k.Lutchi
Messages postés25Date d'inscriptionvendredi 31 octobre 2003StatutMembreDernière intervention27 septembre 2016
-
27 juin 2011 à 12:16
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
k.Lutchi
Messages postés25Date d'inscriptionvendredi 31 octobre 2003StatutMembreDernière intervention27 septembre 201610 27 juin 2011 à 12:16
Si des personnes sont sur un autre système que Windows ou Linux.
J’aimerai avoir un retour de test de mon programme sur un système d’exploitation qui lit autrement les données sur le disc dur.
Pour Windows et Linux du poids faible vert le poids fort.
Karl
k.Lutchi
Messages postés25Date d'inscriptionvendredi 31 octobre 2003StatutMembreDernière intervention27 septembre 201610 27 juin 2011 à 12:09
J’ai fait un test suite à la lecture de l’article http://en.wikipedia.org/wiki/Stdint.h#Exact-width_integer_types. Le test unitaire a posé problème et permet de confirmer l’utilité de ma source dans le cas d’utilisation à l’intérieur d’une structure.
J’ai fait un test en extérieur d’une structure.
Cela fonctionne correctement.
Le test a été effectué sur :
PC 64bits
Noyau UBUNTU 11.4 64 Bits
IDE Eclipse Helios
J’ai fait test de taille avec sizeof.
J’ai eu 52 octet à la place de 50 octet;
k.Lutchi
Messages postés25Date d'inscriptionvendredi 31 octobre 2003StatutMembreDernière intervention27 septembre 201610 27 juin 2011 à 11:18
Merci LeFauve42
J'ai mis du temps pour répondre.
Sinon je vais étudier tes propositions
Et en faire un retour
dolabache
Messages postés1Date d'inscriptionmercredi 9 avril 2008StatutMembreDernière intervention19 avril 2011 19 avril 2011 à 17:56
merci
daminator2
Messages postés12Date d'inscriptiondimanche 7 novembre 2010StatutMembreDernière intervention 4 décembre 2010 29 mars 2011 à 17:45
Il est vrai que tout ceci est inacceptable mais je pense qu'il faut retenir la dernière phrase car moi aussi la première fois je n'avait pas tout compris et j'avais fait la même erreur...
LeFauve42
Messages postés239Date d'inscriptionvendredi 20 octobre 2006StatutMembreDernière intervention20 avril 2009 28 mars 2011 à 13:15
Bonjour,
Je vois un certain nombre de problemes dans ton source :
- D'abord, tu implementes des fonctions dans tes .h. Ceci est a proscrire, car en plus de plomber tes temps de compilation, ca empeche d'utiliser tes fonctions dans plusieurs fichiers .c
- Tu as dans tes .h une sequence #ifndef XXX ; #define XXX ; #endif. C'est suppose empecher les problemes d'inclusion multiple des .h, mais pour que ca fonctionne, les fonctions que tu declares dans ton .h doivent etre entre le "#define XXX" et le "#endif". Note bien que j'ai dit "declares" (ce que tu devrais faire) et pas "implementes" (ce que tu fais).
Pour ces deux points, je te conseillerai de jeter un oeil ici : http://gl.developpez.com/tutoriel/outil/makefile/#L1 L'exemple montre comment separer correctement les declarations et les implementations des fonctions.
Je te conseille aussi de lire le reste de l'article car les makefiles sont un moyen simple de recompiler ton projet quand tu as beaucoups de .c (et si tu developpes sous Linux, make et/ou gmake sont probablement deja installes sur ta machine).
Le dernier point est qu'il existe probablement un moyen de definir la structure entete des BMP d'une maniere portable (avec des types C qui ont la meme taille sur toutes les plateformes). Regarde ici par exemple : http://en.wikipedia.org/wiki/Stdint.h#Exact-width_integer_types Dans ce cas, ton programme devient inutile... Mais ne t'inquiete pas pour ca, c'est comme ca qu'on apprend ;o)
27 juin 2011 à 12:16
J’aimerai avoir un retour de test de mon programme sur un système d’exploitation qui lit autrement les données sur le disc dur.
Pour Windows et Linux du poids faible vert le poids fort.
Karl
27 juin 2011 à 12:09
Le test unitaire a posé problème et permet de confirmer l’utilité de ma source dans le cas d’utilisation à l’intérieur d’une structure.
J’ai fait un test en extérieur d’une structure.
Cela fonctionne correctement.
Le test a été effectué sur :
PC 64bits
Noyau UBUNTU 11.4 64 Bits
IDE Eclipse Helios
Voici la structure de test :
Typedef struct
{
int32_t i32Normal1;
int32_t i32Normal2;
int32_t i32Normal3;
int32_t i32X1;
int32_t i32Y1;
int32_t i32Z1;
int32_t i32X2;
int32_t i32Y2;
int32_t i32Z2;
int32_t i32X3;
int32_t i32Y3;
int32_t i32Z3;
int16_t iCouleur;
} StructEcritureSLT;
J’ai fait test de taille avec sizeof.
J’ai eu 52 octet à la place de 50 octet;
27 juin 2011 à 11:18
J'ai mis du temps pour répondre.
Sinon je vais étudier tes propositions
Et en faire un retour
19 avril 2011 à 17:56
29 mars 2011 à 17:45
28 mars 2011 à 13:15
Je vois un certain nombre de problemes dans ton source :
- D'abord, tu implementes des fonctions dans tes .h. Ceci est a proscrire, car en plus de plomber tes temps de compilation, ca empeche d'utiliser tes fonctions dans plusieurs fichiers .c
- Tu as dans tes .h une sequence #ifndef XXX ; #define XXX ; #endif. C'est suppose empecher les problemes d'inclusion multiple des .h, mais pour que ca fonctionne, les fonctions que tu declares dans ton .h doivent etre entre le "#define XXX" et le "#endif". Note bien que j'ai dit "declares" (ce que tu devrais faire) et pas "implementes" (ce que tu fais).
Pour ces deux points, je te conseillerai de jeter un oeil ici : http://gl.developpez.com/tutoriel/outil/makefile/#L1
L'exemple montre comment separer correctement les declarations et les implementations des fonctions.
Je te conseille aussi de lire le reste de l'article car les makefiles sont un moyen simple de recompiler ton projet quand tu as beaucoups de .c (et si tu developpes sous Linux, make et/ou gmake sont probablement deja installes sur ta machine).
Le dernier point est qu'il existe probablement un moyen de definir la structure entete des BMP d'une maniere portable (avec des types C qui ont la meme taille sur toutes les plateformes). Regarde ici par exemple : http://en.wikipedia.org/wiki/Stdint.h#Exact-width_integer_types
Dans ce cas, ton programme devient inutile... Mais ne t'inquiete pas pour ca, c'est comme ca qu'on apprend ;o)
Eric