error: erreur de syntaxe before numeric constant ??? - C - Programmation
Marsh Posté le 16-01-2007 à 13:02:27
Moi je comprends pas pourquoi tu nous a pas mis le numero de la ligne ou il y a un probleme... On ne connais meme pas tes structures de données!
Marsh Posté le 16-01-2007 à 19:17:36
Chacal2k a écrit : Je ne comprends pas ou est le problème... |
Quel problème ?
|
Marsh Posté le 16-01-2007 à 19:37:54
Je dirais, au feeling, que tu as du ecrire un truc du genre :
#define MACHIN = 42
edit apres la remarque d'ED : en gras
Marsh Posté le 16-01-2007 à 19:41:46
Ace17 a écrit : Je dirais, au feeling, un truc du genre : |
Un suppo et au lit...
Marsh Posté le 16-01-2007 à 19:43:54
Emmanuel Delahaye a écrit : Un suppo et au lit... |
non mais ho! il nous balance un code plus qu'incomplet, il nous donne meme pas la ligne qui pose probleme... mais il se trouve que c'est une erreur courante chez les debutants d'ecrire #define TRUC = bidule; ..... et cette erreur cause ce message. Donc ton suppo, tu sais ou tu peux te le mettre
Marsh Posté le 16-01-2007 à 19:53:17
Ace17 a écrit : non mais ho! il nous balance un code plus qu'incomplet, il nous donne meme pas la ligne qui pose probleme... mais il se trouve que c'est une erreur courante chez les debutants d'ecrire #define TRUC = bidule; ..... et cette erreur cause ce message. Donc ton suppo, tu sais ou tu peux te le mettre |
Ah, OK, je croyais que c'était la correction... bon, ben... Beark, c'est amer. Ah, c'est pas là que ça se met ?
Marsh Posté le 16-01-2007 à 20:11:56
On utilise pas #define pour les constantes
Marsh Posté le 16-01-2007 à 20:49:14
0x90 a écrit : On utilise pas #define pour les constantes |
Pourquoi pas ?
enum ne couvre pas tous les cas. int uniquement.
Marsh Posté le 16-01-2007 à 21:15:34
Emmanuel Delahaye a écrit : Pourquoi pas ? |
Je pensais pas aux enums, je pensais aux const tout simplement.
Marsh Posté le 16-01-2007 à 21:22:23
Emmanuel Delahaye a écrit : Pourquoi pas ? |
+1 pour les const.
#define pour une constante est un moyen crado de la définir. Je trouve que ça fait partie des sales habitudes.
Ca coute rien de faire un const, et au moins c'est typé. Ca évite les lignes de code à reprendre si un jour tu portes ton code sur un langage plus évolué qui trouve que faire
Code :
|
c'est comparer un torchon et une serviette
Marsh Posté le 16-01-2007 à 21:24:36
0x90 a écrit : Je pensais pas aux enums, je pensais aux const tout simplement. |
Code :
|
Voici ce que me repond gcc - ce comportement m'a toujours surpris :
|
Marsh Posté le 16-01-2007 à 21:45:30
Chacal2k a écrit :
|
Moi, quand je vois ça, je me dis que "point" est plus que certainement un type masquant un pointeur (combien masque-t-il d'étoile ? Mystère !!!) et rien que là j'hésite à lire la suite tant j'ai peur de ce que je vais découvrir...
Chacal2k a écrit :
|
Encore une super intuition pour ne pas utiliser l'opérateur "->"
Chacal2k a écrit :
|
Ouais !!! Et vas-y que je te retourne une structure (ah moins que le type "Monde" masque lui-aussi une ou plusieurs étoiles...). Bon, j'arrête de décortiquer ce truc...
Chacal2k a écrit : Je ne comprends pas où est le problème... |
Principalement dans ta façon de coder. Masquer les étoiles c'est hyper sale parce que ça ne sert à rien (avec un peu d'habitude la manipulation de pointeurs simples devient triviale et les pointeurs doubles on s'en sort toujours assez bien quand aux pointeurs triples on arrive quasiment toujours à s'en passer). De plus, personne ne comprend les types que tu manipules (on a bien une idée mais pas de certitude) et c'est hyper facile de se tromper ensuite. Et je suis presque sûr que t'es pas capable toi-même de relire ce code (d'ailleurs si tu nous l'as apporté...).
Marsh Posté le 16-01-2007 à 22:15:24
0x90 a écrit : Je pensais pas aux enums, je pensais aux const tout simplement. |
Gné ? Quel rapport avec les expressions constantes ?
Marsh Posté le 16-01-2007 à 22:19:07
TheFox37 a écrit : #define pour une constante est un moyen crado de la définir. Je trouve que ça fait partie des sales habitudes. |
Bof, je ne vois pas pourquoi. Affirmation gratuite.
Citation :
|
Tu penses qu'un define n'est pas typé ? Alors apprend à l'utiliser correctement avant de critiquer :
Code :
|
"Il n'y a pas de mauvais langages, il n'y a que de mauvais codeurs"
Marsh Posté le 16-01-2007 à 22:20:19
Ace17 a écrit :
|
Ben oui. Faut pas confondre expression constante et variable à lecture seule. Rien à voir. Ouvrez vos livres de C...
Marsh Posté le 16-01-2007 à 23:04:45
Emmanuel Delahaye a écrit : Ben oui. Faut pas confondre expression constante et variable à lecture seule. Rien à voir. Ouvrez vos livres de C... |
Ah bon.
J'ai plutôt l'impression que le problème ici est que le VM-type (gcc dit le variable-size type) n'est pas déclaré dans un block ou dans une fonction - ce que requiert la norme C99.
Marsh Posté le 16-01-2007 à 23:17:02
++fab a écrit : Ah bon. |
Rien à voir. C'est un problème de VLA, pas de const.
Marsh Posté le 16-01-2007 à 23:20:04
Oui, ton explication n'avait rien à voir. Le problème d'Ace17 est en rapport avec les VLA, pas avec const. (je referme mon livre de C)
Marsh Posté le 17-01-2007 à 09:03:51
Emmanuel Delahaye a écrit : Ben oui. Faut pas confondre expression constante et variable à lecture seule. Rien à voir. Ouvrez vos livres de C... |
Ben ooops... comme on dit
En fait je met tellement peu en global que je me suis jamais pris le problème susmentionné (enfin si j'ai des constantes parfois, mais pas pour déclarer d'autres tableaux en global quoi).
Je vais effectivement aller relire mon bouquin de C y'a un truc que j'ai du louper.
Et si je préfer(ais) les const int ou const size_t c'est parce qu'il me semblait que ça permettait au debugger d'être plus clair (sauf en -g3 ou gcc retient aussi les macros).
Marsh Posté le 16-01-2007 à 12:38:30
Je ne comprends pas ou est le problème...