VC6 Syntax error - C - Programmation
Marsh Posté le 03-06-2004 à 15:49:18
La fonction CalculMinimum renvoie bien un float (des fois que la déclaration ne "suive" pas le prototype).
Déjà vu des erreurs dues à erreur précedente, mais si y en a plus qu'une, celle là.
Up !!
Marsh Posté le 03-06-2004 à 16:58:57
La fonction minimum renvoie bien un float, et en changeant "min" de nom, le probleme est toujours la.
Quelle "truc" en amont pourrait generer ce type d'erreur ?
Si je commente la ligne, et intialise min avec une valeur arbitraire, le prog fonctionne. (le resultat des calculs est faux, mais ca fonctionne)
Marsh Posté le 03-06-2004 à 17:21:26
Tu dis qu'en faisant :
Code :
|
ca compile. Et si tu fais :
Code :
|
Que se passe-t-il?
Je reste convaincu que tu devrais changer de nom parce que tres souvent y'a une macro min qui est définie...
Marsh Posté le 03-06-2004 à 17:25:58
ben si tout ça c'est hors fonction, c'est évidemment incorrect
Marsh Posté le 03-06-2004 à 17:37:51
Ace17: les deux bouts de code que tu as ecrit passent (c'est ce que je fait pour pouvoir compiler). par contre des que je lui dis de stocker le resultat de CalculMinimum, ca foire.
j'ai changé de nom, en passant.
Taz: hors fonction ?
edit: cette ligne fait partie d'une fonction, si c'est la ta remarque.
Marsh Posté le 03-06-2004 à 18:24:25
Considere le code qui se trouve avant la ligne ou y'a l'erreur. Met en commentaire tout le code du corps de la derniere fonction, sauf la ligne d'erreur, bien sur. L'erreur est-elle toujours la? Si oui, rebelote mais avec la fonction d'encore avant. Etc..... Des que l'erreur disparait, tu nous poste le code de la fonction que tu as commenté en dernier. Ok?
Marsh Posté le 03-06-2004 à 19:05:27
Apres avoir commenté tout ce qui était au dessus de cette ligne , je me suis dis: je vais pas me prendre la tete pour ca, je vais recuperer ma valeur en passant mini (le nouveau nom) en parametre.
Devinez quoi ? l'erreur est toujours la. Alors qu'il n'y a plus de signe "="...
Le probleme, c'est que l'erreur peut venir d'un autre fichier ( des headers que j'inclus au dessus, et pas ecrit par moi, ces fichiers font partie d'une lib mathematique.), et je peux pas tous les commenter
Marsh Posté le 03-06-2004 à 19:33:48
Et le message d'erreur c'est quoi? ( quand il n'y a plus le signe '=' )
Marsh Posté le 03-06-2004 à 22:05:48
le meme qu'avant : \src\model.cpp(320) : error C2059: syntax error : '=' !
el muchacho: non je l'avais pas. Ce fichier apporte quoi ?
Je l'ai rajouté, ai commenté le windows.h que j'includais, et il me sort ces erreurs :
Citation : |
Marsh Posté le 03-06-2004 à 22:11:09
apres un google rapide, si j'ai bien compris, stdafx a quelque chose a voir avec les mfc.
J'utilise la sdl, je me demande si c'est pas pour ca que ca deconne ?
Marsh Posté le 03-06-2004 à 22:26:54
Tu peux pas poster le code de toute la fonction qui appelle CalculMinimum ?
A mon avis, il y a une erreur de syntaxe avant (un ; oublié ?)...
Marsh Posté le 03-06-2004 à 22:38:34
ouaip voila :
Code :
|
juste pour preciser que cette fonction n'est pas dans le meme fichier.
Marsh Posté le 03-06-2004 à 23:29:44
zifox a écrit : le meme qu'avant : \src\model.cpp(320) : error C2059: syntax error : '=' ! |
Ca, ca vient d'une macro .....
Marsh Posté le 03-06-2004 à 23:36:45
On veut pas le code de CalculMinimum mais le code de la fonction qui l'appelle! Celui ou il y a l'erreur
Marsh Posté le 03-06-2004 à 23:46:52
zifox a écrit : le meme qu'avant : \src\model.cpp(320) : error C2059: syntax error : '=' ! |
Il sert à inclure des headers précompilés. Toutes les directives d'includes que tu mets dedans seront compilés une fois pour toutes dans le projet, ce qui accélère considérablement la compilation. Normalement, il faut un flag de compile qui doit être là par défaut. Et il faut rebuilder le projet entier pour éviter des erreurs.
Je pige pas, la signature de ta méthode CalculMinimum a changé ?
Tu mets :
float CalculMinimum ( BNode * node, Vector nc, float bmin, float bmax, float pas);
Puis :
void CalculMinimum ( BNode * node, Vector nc, float bmin, float bmax, float pas, float & retour) {...}
si tu l'as définie comme ça, normal qu'il y ait un syntax error !
Marsh Posté le 03-06-2004 à 23:52:08
Ace17: oups pardon mal lu ton post...
el muchacho:je l'ai renommée en pensant qu'en virant le "=" sur cette ligne ca arrengerait les chose. Le prototype correspond à la def de la fonction, pas de probleme de ce coté là.
cf ci dessous:
(j'ai mis tout le code de la function qui se situe AVANT l'appel. la ligne incrimée en tout en bas)
Code :
|
Marsh Posté le 03-06-2004 à 23:54:04
Ah donc en fait tu fais du C++...
Déjà, sors le "temp = ..." du if(), qu'on y voie plus clair.
Tu peux aussi écrire "c[i][j] +=..." voire dérouler la boucle si t'as besoin d'optimiser...
Et PAS, c'est une constante ou une macro ?
Marsh Posté le 04-06-2004 à 00:03:58
Et le code tout con comme ça :
Code :
|
il compile ?
Sinon, dans ton premier post tu fais min=... or tu as seulement déclaré une variable mini, c'est normal ?
Marsh Posté le 04-06-2004 à 00:43:10
el muchacho: PAS est une constante.
pascal: non.
j'ai renommé min en mini sur le conseil de Ace17 me disant que min etait peut etre un nom reservé.
Marsh Posté le 04-06-2004 à 05:48:10
void CalculMinimum ( BNode * node
tu vois bien que c'est pas bon là déjà
Marsh Posté le 04-06-2004 à 06:32:52
Commente, l'intérieur des boucles, et dis nous si ca compile
Marsh Posté le 04-06-2004 à 12:56:24
Taz: euh non, je vois pas... qu'est ce qui n'est pas bon ?
avec les boucles commentées ca passe pas non plus
(j'ai meme essayé de commenter tout le if et le else, ca change rien).
Argh je comprends vraiment pas d'ou ca peut venir...
Marsh Posté le 04-06-2004 à 13:07:26
Taz : je sais pas si c'est ce que tu voulais faire remarquer, mais la def :
Code :
|
est pas bonne. Me demande comment j'ai pas remarqué ca avant.
j'ai donc remplacé par :
Code :
|
ce qui fait que je passe bien un BNode * à CalculMinimum.
Malheureusement le probleme avec le '=' est toujours là
pour eclaircir la chose:
Code :
|
Marsh Posté le 04-06-2004 à 13:52:36
Et en modifiant la fonction et son appel : un seul argment, deux, trois voir si ça vient de l'appel ? CalculMinimum(rootCluster) etc....
Marsh Posté le 04-06-2004 à 14:02:51
euh non là ca fonctionne toujours pas.
Carbon_14: je vais essayer ca
Marsh Posté le 04-06-2004 à 14:13:57
OK merci a tous, j'ai trouvé le probleme.
Suivant le conseil de Carbon, j'ai viré les arguments un par un pour voir ou ca buggait. C'est le parametre pas qui fonctionnait pas.
J'ai eu un doute pendant une minute avant d'aller verifier l'endroit ou je declarait PAS. Celui ci est declaré par un define, mais mal ecrit:
Code :
|
C'est de là que vient le probleme du '=' ! ! !
C'est sur que = c'est pas vraiment un float...
Marsh Posté le 04-06-2004 à 14:28:23
On a des fois des réflexes malencontreux. Ca ma fait qq chose du genre une fois avec copier/coller mal adapté...
Marsh Posté le 04-06-2004 à 15:32:07
zifox a écrit : OK merci a tous, j'ai trouvé le probleme. |
Ben tiens...
Marsh Posté le 03-06-2004 à 15:02:48
J'ai une erreur assez bizarre sous visual, la seule qui me reste d'ailleurs
Bref voici le code:
Donc basiquement je veux stocker un resultat dans une variable. Rien de compliqué jusque la.
et voila ce que me sort Visual:
\src\model.cpp(320) : error C2059: syntax error : '='
Je sais pas du tout d'ou ca vient. J'ai meme pensé que c'etait un bug du compilateur, donc j'ai installé le SP4, mais ca deconne toujours.
C'est grave docteur, ou je passe a coté de quelque chose d'evident ?