Le code suivant compile bien avec gcc (c'est apparemment du C99):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdlib.h>
 
union foo
{
  struct {
    int l;
    void *d;
  } pool;
  struct {
    int min;
    int max;
  } minmax;
};
 
int main ()
{
  union foo f1 = { .minmax = { 1, 2 } };
 
  return 0;
}
Mais pour vc++ (Visual Studio 2008), il y a une erreur dans la définition de f1, à cause du '.' devant minmax .

J'aimerais savoir s'il y a une autre syntaxe similaire pour vc++ (i.e. je veux définir f1 lors de sa déclaration). Donc

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
union foo f1;
f1.minmax.min = 1;
f1.minmax.max = 2;
n'est pas ce que je demande.

merci