Perguntas com a marcação «undefined-behavior»

O resultado imprevisível da compilação ou execução de um programa que quebra as regras da linguagem que nem o compilador, o intérprete nem o sistema de tempo de execução precisam impor. NÃO USE esta tag para perguntas sobre o tipo de dados ou o valor de retorno "indefinido". Nesses casos, a tag [undefined] deve ser usada.









5
Por que o estouro de número inteiro não assinado é definido, mas o excesso de número inteiro assinado não é?
Estouro de número inteiro não assinado é bem definido pelos padrões C e C ++. Por exemplo, o padrão C99 ( §6.2.5/9) declara Uma computação envolvendo operandos não assinados nunca pode transbordar, porque um resultado que não pode ser representado pelo tipo inteiro não assinado resultante é reduzido pelo módulo, …


5
Por que esse loop produz “aviso: a iteração 3u invoca um comportamento indefinido” e gera mais de 4 linhas?
Compilando isso: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } e gccproduz o seguinte aviso: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] std::cout << i*1000000000 << std::endl; ^ Eu entendo que há um estouro inteiro assinado. O que …

8
Otimizando um "tempo (1)"; em C ++ 0x
Atualizado, veja abaixo! Ouvi e li que o C ++ 0x permite que um compilador imprima "Olá" para o seguinte trecho #include <iostream> int main() { while(1) ; std::cout << "Hello" << std::endl; } Aparentemente, tem algo a ver com threads e recursos de otimização. Parece-me que isso pode surpreender …




Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.