«undefined-behavior» etiketlenmiş sorular

Ne derleyici, tercüman ne de çalışma zamanı sisteminin kurallarını ihlal eden bir programın derlenmesinin ya da yürütülmesinin öngörülemez sonucu, bunu uygulamak zorunda değildir. "Undefined" veri türü veya dönüş değeriyle ilgili sorular için bu etiketi KULLANMAYIN. Bu durumlarda, bunun yerine [undefined] etiketi kullanılmalıdır.

5
Tanımsız davranış ve sıralama noktaları
"Dizi noktaları" nedir? Tanımlanmamış davranış ile sıralama noktaları arasındaki ilişki nedir? a[++i] = i;Kendimi daha iyi hissetmek için sık sık komik ve kıvrımlı ifadeler kullanırım . Onları neden kullanmayı bırakmalıyım? Bunu okuduysanız, yeniden yüklenen Tanımsız davranış ve sıra noktaları takip sorusunu ziyaret ettiğinizden emin olun . (Not: Bu, Stack Overflow'ın …




5
C ++ standardı, başlatılmamış bir bool'un bir programı çökmesine izin veriyor mu?
C ++ bir "tanımsız davranış" derleyicinin istediği her şeyi yapmasına izin verebilir biliyorum. Ancak, kodun yeterince güvenli olduğunu düşündüğüm için beni şaşırtan bir çöküş yaşadım. Bu durumda, asıl sorun sadece belirli bir derleyici kullanan belirli bir platformda ve sadece optimizasyon etkinleştirildiğinde gerçekleşti. Sorunu yeniden oluşturmak ve en üst düzeye çıkarmak …

22
Başlatılmamış yerel değişken en hızlı rasgele sayı üreteci midir?
Başlatılmamış yerel değişkenin tanımsız davranış ( UB ) olduğunu biliyorum ve ayrıca değerin daha fazla işlemi etkileyebilecek tuzak gösterimleri olabilir, ancak bazen rastgele sayıyı yalnızca görsel temsil için kullanmak ve bunları başka bir bölümde kullanmayacak Örneğin, görsel efektte rastgele renk içeren bir şey ayarlayın, örneğin: void updateEffect(){ for(int i=0;i<1000;i++){ int …

11
Neden f (i = -1, i = -1) tanımlanmamış davranış?
Değerlendirme ihlallerinin sırası hakkında okuyordum ve beni şaşırtan bir örnek veriyorlar. 1) Bir skaler nesne üzerindeki bir yan etki, aynı skaler nesne üzerindeki başka bir yan etkiye göre sıralı değilse, davranış tanımsızdır. // snip f(i = -1, i = -1); // undefined behavior Bu bağlamda, ia, skaler bir amacı , …

14
Bu neden bazı platformlarda değil, bazı platformlarda döngü çıkışı için?
Son zamanlarda C öğrenmeye başladım ve konu olarak C ile bir ders alıyorum. Şu anda döngülerle oynuyorum ve nasıl açıklayacağımı bilmediğim garip bir davranışla karşılaşıyorum. #include <stdio.h> int main() { int array[10],i; for (i = 0; i <=10 ; i++) { array[i]=0; /*code should never terminate*/ printf("test \n"); } printf("%d …

5
Neden imzasız tamsayı taşması tanımlı davranış, ancak imzalı tamsayı taşması tanımlanmadı?
İmzasız tamsayı taşması hem C hem de C ++ standartları tarafından iyi tanımlanmıştır. Örneğin, C99 standardı ( §6.2.5/9) İmzasız işlenenleri içeren bir hesaplama asla üstesinden gelemez, çünkü elde edilen imzalanmamış tamsayı türü ile temsil edilemeyen bir sonuç, modüle edilen sonuç tarafından temsil edilebilen en büyük değerden daha büyük bir sayıdır. …

11
Bir C ++ programcısının bilmesi gereken yaygın tanımsız davranışlar nelerdir? [kapalı]
Burada ne sorulduğunu söylemek zor. Bu soru belirsiz, belirsiz, eksik, aşırı geniş veya retoriktir ve mevcut haliyle makul bir şekilde cevaplanamaz. Bu soruyu tekrar açılabilmesi için açıklığa kavuşturmak üzere yardım merkezini ziyaret edin . 7 yıl önce kapalı . Kilitli . Bu soru ve cevapları kilitlidir çünkü soru konu dışıdır, …


5
Bu döngü neden “uyarı: yineleme 3u tanımsız davranış başlatır” üretir ve 4 satırdan fazlasını üretir?
Bunu derleme: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } ve gccaşağıdaki uyarıyı verir: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] std::cout << i*1000000000 << std::endl; ^ İmzalı bir tamsayı taşması olduğunu anlıyorum. Ne elde edemiyorum neden ideğer …

8
Bir "while (1);" C ++ 0x'de
Güncellenmiş, aşağıya bakın! Duydum ve C ++ 0x derleyicinin aşağıdaki snippet için "Merhaba" yazdırmasına izin verdiğini okudum #include <iostream> int main() { while(1) ; std::cout << "Hello" << std::endl; } Görünüşe göre iş parçacıkları ve optimizasyon yetenekleri ile ilgili bir şey var. Bana öyle geliyor ki, bu birçok insanı şaşırtabilir. …

5
Geliştirilmiş GCC 6 optimizer neden pratik C ++ kodunu kırıyor?
GCC 6'nın yeni bir optimize edici özelliği var : Her thiszaman boş olmadığını varsayar ve buna göre optimize eder. Değer aralığı yayılımı artık C ++ üye işlevlerinin bu işaretçisinin boş olmadığını varsayar. Bu, genel boş işaretçi denetimlerini ortadan kaldırır, ancak bazı uygun olmayan kod tabanlarını da (Qt-5, Chromium, KDevelop gibi) …


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.