| gilou |
Sayajin a écrit a écrit :
Dans le même genre avec Dev-c++, il accepte ca :
int Bad[5,2];
par contre dés que tu rajoutes les options suivantes aux compilateurs "-ansi -pedantic-errors", il détecte que c'est une erreur non conforme au ANSI C++ ! Par contre certains disent que c'est pas vraiment une erreur, et considèrent que la première valeur 5 est à la libre utilisation du programmeur ! Quoi qu'il en soit Dev-c++ considère cette déclaration comme int Bad[2]; mais d'autres compilateur aurait émis une erreur, d'ailleur c'ets ce qui est dis dans le livre de Bjarne Stroustrup ! ! !
|
Ben oui, probablement valable a cause de la signification de la virgule dans un terme expression1 , expression2 qui comme chacun sait, evalue d' abord expression1, puis expression2, et retourne cette derniere valeur. (Et c'est aussi dans le standard du C-ansi)
donc dans int Bad[5,2];, il voit une expression a evaluer pour le tableau, il evalue le premier terme, 5, neglige (discard) cette valeur, il evalue le second terme, et garde sa valeur comme evaluation de 5,2, d' ou l'allocation d' un int [2];
Donc si ton code n' etait pas clairement du C++, mais en fait du C, il se peut qu' il ait ete compile comme du C, auquel cas, le comportement du compilo est correct.
A+, [edtdd]--Message édité par gilou--[/edtdd] |