bonjour tous le monde,
est ce que l'ecriture suivante
est acceptée dans le C ?Code:
1
2 unsigned char P_Lire_CPS(unsigned char *code, unsigned char *contexte_cps, NO_SEGMENT mynoappli, unsigned char presence, unsigned int *erreur)
Version imprimable
bonjour tous le monde,
est ce que l'ecriture suivante
est acceptée dans le C ?Code:
1
2 unsigned char P_Lire_CPS(unsigned char *code, unsigned char *contexte_cps, NO_SEGMENT mynoappli, unsigned char presence, unsigned int *erreur)
t'as essayé de la faire compiler ?
si NO_SEGMENT est correctement déclaré, et avec éventuellement un ";" en fin de ligne s'il ne s'agit pas d'une définition de fonction, ça devrait le faire.
Mais le mieux serait encore effectivement d'essayer de compiler... ;)
oui,
j'ai le meswage d'erreur:
Code:
1
2 parse error before 'unsigned'
est-ce le cas ?Citation:
Envoyé par rigobert
Et en remplaçant NO_SEGMENT par un type tout bête ?
(int par exemple)
Si ça passe avec cette modif, c'est généralement que NO_SEGMENT n'est pas un type valide au moment où cette ligne est compilée.
oui:
Code:
1
2 typedef unsigned char NO_SEGMENT;
A moins que ton erreur soit à la ligne précédente (par exemple, oubli du point virgule)
j'ai séparé les déclaration et la définition de la fonction, il ne me reste que des warning:
le premier warning m'indique l'emplacement (les deux etoiles):Code:
1
2
3 warning : multi-caracter caracter constant warning : passing arg 1 for P_lire_CPSmakes pointer from interger without a cast
donnee_carte = P_**Lire_CPS('1234',contexte_cps,mynoappli,presence,erreur);
!!!!!
Ta chaine de caractères serait mieux entre guillemets doubles
Code:
1
2"1234"
C'est pourtant clair : "multi-caracter caracter constant" + " '1234' ".Citation:
Envoyé par moon93
Une chaîne se met entre guillemets en C pas entre apostrophes (qui délimitent une constante litérale de type caractère).
Le deuxième avertissement est lié.
comment, un define peut mettre la panique?!!!
Ce n'était a priori pas le cas ici, mais imagines que tu aies un
et une fonction ou une variable nommée TOTO dans ton code...Code:
1
2#define TOTO "abc"
Tous les appels à TOTO seraient remplacés avant la compilation par "abc".
C'est le genre de gag que les régles classiques sur le noms de variable ou de fonction évitent, mais le jour où ça arrive, on passe un certain temps à le debugger :lol:
ok,:)