Comment est-ce que je peux passer autour des pointeurs aux structures qui ont des définitions privées, sans préfixer les types de pointeur avec struct
?Passer des pointeurs vers des structures privées en C?
Par exemple, cela fonctionne:
typedef struct Handle {
Ino ino;
} Handle;
bool handle_open(Handle **);
Mais si je déplace la définition struct dans un fichier source, d'autres fichiers source sont contraints d'utiliser struct Handle *
, au lieu de Handle *
.
Cela semble fonctionner correctement. Cependant j'obtiens des erreurs si le typedef est fait au même type plus d'une fois. Un peu ennuyeux, toujours en train de l'essayer. –
Que signifie "fait au même type"? – lijie
oh. J'ai compris. comme dans, si vous faites 'typedef struct Handle Handle; typedef struct Handle Handle; '? Il y a une erreur car vous définissez deux fois le typedef 'Handle'. Si cela se produit dans un fichier d'en-tête, veuillez utiliser les gardes incluses. – lijie