"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > `Int x = x;` comportamento indefinido devido à conversão de LValue em valor?

`Int x = x;` comportamento indefinido devido à conversão de LValue em valor?

Postado em 2025-03-22
Navegar:231

Is `int x = x;` Undefined Behavior Due to Lvalue-to-Rvalue Conversion?

LVALUE-para-RAVALUE Conversão e comportamento indefinido em int x = x;

em c, a questão de se atribuir um valor não inicializado a si próprio constitui um comportamento indeciso foi um tópico de debate. O padrão (3.3.2) declara que a inicialização de uma variável consigo mesma, como no exemplo int x = x;, pode levar a resultados inesperados. Suponha que o X do lado direito seja uma variável automática não inicializada com um valor indeterminado. De acordo com o padrão (4.1), executar uma conversão LValue-para-avaliação em tal valor resulta em comportamento indefinido. Por exemplo, as notas padrão que os operadores de atribuição internos envolvem a conversão de LValue-para-valor para o operando correto. Outras disposições também indicam que a conversão de LValue-para-valor é geralmente prevista, exceto quando explicitamente especificada. As evidências sugerem que a especificação pretendida deve esperar prvalos onde quer que seja necessário um valor. comportamento.

suportando evidências

evidências adicionais surgem da consideração do código que atribui variáveis ​​não iniciadas a diferentes tipos e atribuições diferentes. Comportamento inconsistente, como impedir a conversão de Lvalue-Ravalue na inicialização de referência, mas que a permitir a inicialização do objeto, acrescenta credibilidade à visão de que a conversão de LValue em valor é esperada para a inquitalização de cópia. Conversão de LValue-para-valor. Isso sugere a intenção de estabelecer um comportamento indefinido em casos como int x = x;. Isso, por sua vez, leva a um comportamento indefinido devido à natureza não inicializada do direito direito. As inconsistências e a necessidade de esclarecimento do padrão destacam a importância das especificações detalhadas para as categorias de valor.

Tutorial mais recente Mais>

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