C99 standardında, imzalanmış tamsayı taşması tanımlanmamış bir davranış olduğunu söyleyebilir mi?C99 standardında, imzalanmış tamsayı taşması tanımlanmamış davranış olduğunu söyleyebilir mi?
ben işaretsiz tamsayı taşması bölümünde 6.2.5 yılında (Why is unsigned integer overflow defined behavior but signed integer overflow isn't? bakınız) iyi tanımlanmış olma konusunda yorumunu bakın:
imzasız işlenen içeren bir hesaplama yapabilirsiniz asla taşması, çünkü tarafından temsil edilemez bir sonuç Ortaya çıkan işaretsiz tamsayı türü, sonuç türü tarafından temsil edilen olabilen en büyük değerden daha büyük bir sayı olan indirgenmiş modüldür.
ama tanımsız davranışlar üzerinde Ek J arıyorum ve sadece listede bu benzer öğeleri görmek:
bir ifade imzalanan terfi tip sola kaydırıldığı sahip ve değeri ya ifadesi negatifse veya kayması sonucu terfi tip sunulabilen olmayacaktır olacağını
ve
bir tamsayıdır aritmetik veya dönüşüm fonksiyonun sonucunudeğeri I yok aritmetik kendisi
C99 taslak standardı n1256 * 6.5 İfadeler 5 Bir ifadenin değerlendirilmesi sırasında istisnai bir durum ortaya çıkarsa (yani sonuç matematiksel olarak tanımlanmamışsa veya türü için temsil edilen değerler aralığında değil, davranış tanımsızdır. * – EOF
@EOF: Neden bunu bir yanıt olarak göndermeyin? –
@NateEldredge: Görebildiğim kadarıyla, bu bağlamda özdeş olan C11 taslak standardına dayanan bir cevap var. – EOF