Re: gcc versus g++

Startseite

Nachricht beantworten
Autor: Patrick Dupre
Datum:  
To: Edgar Bonet
CC: guilde
Betreff: Re: gcc versus g++
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.
>
>