Compilation de code C avec des structures/unions anonymes
Les structures et unions anonymes permettent des structures de données flexibles sans avoir à déclarer une structure/union distincte taper. En C , des structures/unions anonymes peuvent être créées à l'aide de structures et d'unions imbriquées ; cependant, C ne fournit pas de prise en charge directe pour cette fonctionnalité.
Pour obtenir une fonctionnalité similaire en C avec GCC, vous pouvez utiliser l'indicateur -fms-extensions. Cet indicateur active les extensions de style Microsoft, y compris la prise en charge des structures/unions anonymes.
Par exemple, considérons le code suivant :
<code class="c">typedef struct { union { struct { float x, y, z; }; float xyz[3]; }; } Vector3;</code>
Avec l'ajout de -fms- extensions flag, le code se compile avec succès avec la commande suivante :
gcc -fms-extensions -c <source_file>.c
Cette extension vous permet d'accéder aux membres anonymes de la structure via les membres du tableau, comme dans le code suivant :
<code class="c">Vector3 v; assert(&v.xyz[0] == &v.x); assert(&v.xyz[1] == &v.y); assert(&v.xyz[2] == &v.z);</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!