Merci Edgar,
OK pour le case,
voici ce qui passe en gcc et pas en g++
int main () {
char type_scan = 'S' ;
switch (type_scan) {
case '1':
const double detune_exten = 0.2 ;
break ;
case 'Y': {
}
}
}
> Subject: Re: gcc versus g++
>
> Bonsoir !
>
> Patrick Dupré a écrit :
> > avec les case: Il faut les mettre entre { } en g++
>
> C'est pas vrai.
>
> > De meme avec les inline
> > #define min(a, b) (a < b ? a : b)
> > qui ne passe pas en g++
>
> Pas vrai non plus.
>
> Exemple :
>
> #define min(a, b) (a < b ? a : b)
>
> volatile char c;
>
> int main() {
> int i;
> switch (c) {
> case 'S': i = 0; break;
> default: i = 1; break;
> }
> return min(i, c);
> }
>
> Ça compile sans warnings avec `-O2 -Wall -Wextra`.
>
> Par contre, ta macro comporte deux pièges. Regarde ce qu'elle donne si
> tu évalues :
>
> min(toto & 0xff, tata++)
>
> Ce que je te suggère : à partir du code qui pose problème, essaye
> d'identifier le passage problématique, isole-le dans un exemple
> minimaliste, et *vérifie* que le problème existe toujours dans cet
> exemple. Il faut toujours vérifier, sinon tu fais des suppositions et,
> comme tu le constates ici, elles peuvent très bien être fausses.
>
> Une fois que tu as cet exemple minimaliste *et vérifié*, tu peux
> demander de l'aide, ici ou ailleurs, *en postant l'exemple* !
>
> Mais avant toute chose, il faut lire ça :
>
> How to create a Minimal, Reproducible Example
> https://stackoverflow.com/help/minimal-reproducible-example
>
> Bonne soirée !
>
> Edgar.
>
>