Re: Erreur de compilation
Citation:
Envoyé par Vodlich
J'ai plusieurs fois ce message d'erreur "ISO C89 interdit les mélanges de déclarations et de code" à chaque compilation.
Oui. En mode C89 (ANSI) ou C90 (ISO) les définitions d'objets doivent être faites en début de bloc et non n'importe où...
Re: Erreur de compilation
Bonjour,
Citation:
Envoyé par Vodlich
Je soupconne que cela vienne du compilateur.
Avant de mettre le compilateur en cause, il faut commencer par se remettre en question. Regarde le niveau des bug connu de gcc : GCC Bugs avant de tomber dessus, faut déjà faire du code bougrement tordu!
Re: Erreur de compilation
Citation:
Envoyé par gege2061
Bonjour,
Citation:
Envoyé par Vodlich
Je soupconne que cela vienne du compilateur.
Avant de mettre le compilateur en cause, il faut commencer par se remettre en question. Regarde le niveau des bug connu de gcc :
GCC Bugs avant de tomber dessus, faut déjà faire du code bougrement tordu!
Arf, ils sont supers leurs bugs !
Code:
1 2 3 4 5
|
i=++i
foo(++i,++i)
(++i)*(++i) /* special case with foo=="operator*" */
std::cout << ++i << ++i /* foo(foo(std::cout,++i),++i) */ |
C'est sur c'est le genre de trucs qu'on code tres souvent.
Re: Erreur de compilation
Citation:
Envoyé par Jack_serious
Arf, ils sont supers leurs bugs !
Code:
1 2 3 4
|
i=++i
foo(++i,++i)
(++i)*(++i) /* special case with foo=="operator*" */ |
Ce ne sont pas des bugs, mais des comportements indéfinis. Il est interdit d'utiliser de telles constructions. Si bug il y a de la part du compilateur, c'est de laisser passer ce genre de code sans rien dire.
Il est clair qu'un programmeur qui utilise de telles horreurs est buggé.