Maison > développement back-end > C++ > Comment puis-je compiler des structures/unions anonymes en C avec GCC ?

Comment puis-je compiler des structures/unions anonymes en C avec GCC ?

Patricia Arquette
Libérer: 2024-10-31 21:20:29
original
877 Les gens l'ont consulté

How Can I Compile Anonymous Structs/Unions in C with GCC?

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>
Copier après la connexion

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
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal