1
Je me demande si le code C suivant est valide:visibilité nom structure imbriquée
struct A {
struct B {
int value;
} b;
};
struct B;
void func1(struct B* b) {
b->value = 42;
}
void func2() {
struct A a;
func1(&a.b);
}
Ce code est compilé avec gcc et fonctionne comme on pouvait s'y attendre alors qu'un vérificateur de code se plaint et je me demande qui est juste et si cela est acceptable par la norme (C90 ou C99) de se référer à struct B
sous cette forme.
Ignorer l'imbrication, 'A a,' ne devrait pas compiler. Ce doit être 'struct A a '. Avec ce changement, MSVC accepte également cela. – hmjd
Merci, le 'struct' a été perdu pendant que je formais le message, l'a ajouté maintenant. – johannes
que dit-on? –