são "estruturas anônimas" padrão em c? Uma análise detalhada
introdução
O conceito de "estruturas anônimas" em C levantou questões sobre sua padronização e natureza precisa. Este artigo tem como objetivo esclarecer essas questões examinando a documentação relevante e explorando as distinções sutis entre diferentes tipos de estruturas anônimas. A documentação do MSDN da Microsoft, estruturas anônimas (estruturas definidas sem nome) são consideradas fora do padrão em c. No entanto, os padrões ISO C não abordam explicitamente esse aspecto. Para a declaração de estruturas sem nome (estruturas sem nome), que podem ser instanciadas e usadas como nomeado regular Structs.
structs anonymous:
structs anonymous referem -se a um recurso específico em alguns compiladores C (por exemplo, GCC e visual c) que permitem acesso a membros de uma estrutura sem nome diretamente de de o objeto contendo.
a distinção
a distinção da chave está na acessibilidade dos membros. No caso de estruturas sem nome, os membros são acessíveis através do operador de pontos padrão (por exemplo, Foo.bar), enquanto as estruturas anônimas permitem acessar diretamente os membros sem especificar o nome da estrutura (por exemplo, foo.hi). padrão vs. não-padrão
O padrão define a funcionalidade de estruturas sem nome, mas não especificamente o Comportamento "anônimo" de acessar diretamente os membros. Portanto, o último é considerado um recurso não padrão suportado por certos compiladores. &&&] struct foo {
estrutura {
int hi;
int tchau;
} bar;
};
não padrão anônimo struct:
struct foo { estrutura { int hi; int tchau; }; //
No segundo exemplo, os membros podem ser acessados diretamente:f.hi = 3; // não-padrão, recurso-dependente do compilador
conclusão
estruturas anônimas, conforme definido por sua capacidade de acessar diretamente os membros do objeto contendo, são um não Recurso padrão suportado por determinados compiladores C. O padrão C fornece a funcionalidade de estruturas sem nome, mas a acessibilidade direta dos membros não é especificada e não é garantida para ser suportada.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3