Pytania otagowane jako undefined-behavior

Nieprzewidywalny wynik kompilacji lub wykonania programu, który łamie zasady języka, ani kompilator, ani interpreter, ani system wykonawczy nie muszą egzekwować. NIE UŻYWAJ tego znacznika w przypadku pytań dotyczących typu danych lub zwracanej wartości „undefined”. W takich przypadkach należy zamiast tego użyć tagu [undefined].

5
Niezdefiniowane zachowanie i punkty sekwencji
Co to są „punkty sekwencji”? Jaki jest związek między niezdefiniowanym zachowaniem a punktami sekwencji? Często używam śmiesznych i skomplikowanych wyrażeń, takich jak a[++i] = i;, aby poczuć się lepiej. Dlaczego mam przestać ich używać? Jeśli to przeczytałeś, koniecznie odwiedź kolejne pytanie Niezdefiniowane zachowanie i punkty sekwencji ponownie załadowane . (Uwaga: …




5
Czy standard C ++ pozwala niezainicjowanemu boolowi na zawieszenie programu?
Wiem, że „niezdefiniowane zachowanie” w C ++ może pozwolić kompilatorowi na zrobienie wszystkiego, co chce. Miałem jednak awarię, która mnie zaskoczyła, ponieważ uznałem, że kod jest wystarczająco bezpieczny. W takim przypadku prawdziwy problem wystąpił tylko na konkretnej platformie używającej określonego kompilatora i tylko wtedy, gdy włączono optymalizację. Próbowałem kilku rzeczy, …




5
Dlaczego zachowanie związane z przepełnieniem liczb całkowitych bez znaku jest zdefiniowane, a przepełnienie ze znakiem całkowitym nie?
Niepisane przepełnienie liczb całkowitych jest dobrze zdefiniowane zarówno przez standardy C, jak i C ++. Na przykład stwierdza stan C99 standard ( §6.2.5/9) Obliczenia obejmujące niepodpisane operandy nigdy nie mogą się przepełnić, ponieważ wynik, który nie może być reprezentowany przez wynikowy typ liczb całkowitych bez znaku, jest zmniejszany modulo o …

11
Jakie są wszystkie typowe niezdefiniowane zachowania, o których powinien wiedzieć programista C ++? [Zamknięte]
Trudno powiedzieć, o co tu pytają. To pytanie jest dwuznaczne, niejasne, niepełne, zbyt szerokie lub retoryczne i na obecną formę nie można udzielić rozsądnej odpowiedzi. Aby uzyskać pomoc w wyjaśnieniu tego pytania, aby można je było ponownie otworzyć, odwiedź centrum pomocy . Zamknięte 7 lat temu . Zablokowana . To …


5
Dlaczego ta pętla generuje „ostrzeżenie: iteracja 3u wywołuje niezdefiniowane zachowanie” i wyświetla więcej niż 4 wiersze?
Kompilowanie tego: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } i gccgeneruje następujące ostrzeżenie: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] std::cout << i*1000000000 << std::endl; ^ Rozumiem, że występuje przepełnienie liczby całkowitej ze znakiem. Nie mogę zrozumieć, …

8
Optymalizacja z dala od „while (1);” w C ++ 0x
Zaktualizowano, patrz poniżej! Słyszałem i przeczytałem, że C ++ 0x umożliwia kompilatorowi wydrukowanie „Hello” dla następującego fragmentu kodu #include <iostream> int main() { while(1) ; std::cout << "Hello" << std::endl; } Najwyraźniej ma to coś wspólnego z wątkami i możliwościami optymalizacji. Wydaje mi się jednak, że może to zaskoczyć wielu …



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.