Article View: pl.comp.lang.c
Article #310369Re: przekręcenie licznika w zmiennej typu int - czy to UB ?
From: Tomasz Kaczanowski
Date: Wed, 12 Jan 2022 16:02
Date: Wed, 12 Jan 2022 16:02
27 lines
2436 bytes
2436 bytes
W dniu 12.01.2022 o 16:49, Arnold Ziffel pisze: > Mateusz Viste <mateusz@xyz.invalid> wrote: > >> Drobna poprawka, żeby było śmieszniej. >> Rozdział 6.2.5.1 z tego samego dokumentu co wcześniej podaje: >> >> "computation involving unsigned operands can never overflow because a >> result that cannot be represented by the resulting unsigned integer >> type is reduced modulo the number that is one greater than the largest >> value that can be represented by the resulting unsigned integer type" >> >> Czyli przy typach *unsigned* UB nie występuje. > > Chodzi, podejrzewam, o to, że sposób zapisu liczb ujemnych różni się > między platformami. Nigdy w praktyce nie widziałem innego niż U2, ale > istnieją, a C ma być przenośne. > ale czasem kompilator może robić optymalizacje wiedząc, że liczby takie nie mogą się "przekręcać" Jakiś czas temu był taki kod analizowany nawet chyba tu, a może na 4programmers - nie pamiętam, po włączeniu optymalizacji w nowszych kompilatorach kod działał właśnie dziwnie, bo kompilator robił dużą optymalizację biorąc pod uwagę, że nie może być przekręcenia. -- http://zrzeda.pl
Technical Details
Message-ID:
<srmu28$1pcc$1@gioia.aioe.org>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!168.119.53.7.MISMATCH!weretis.net!feeder8.news.weretis.net!news.mixmin.net!aioe.org!z67upo8gFVo4Z8YX+TqpCw.user.46.165.242.91.POSTED!not-for-mailReferences:
<9fefc125-650e-496d-a385-87234f47a197n@googlegroups.com> <soogbe$6te$1@gioia.aioe.org> <8b1e1123-77c7-4cf0-ab2e-efd24958795en@googlegroups.com> <sqn2v5$1mm3$1@gioia.aioe.org> <4b1b7198-eb96-44ef-82e4-9ab0afa35473@hooterville.invalid>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!ecngs!feeder2.ecngs.de!168.119.53.7.MISMATCH!weretis.net!feeder8.news.weretis.net!news.mixmin.net!aioe.org!z67upo8gFVo4Z8YX+TqpCw.user.46.165.242.91.POSTED!not-for-mail From: Tomasz Kaczanowski <kaczus@_wiadomo_.onet.pl> Newsgroups: pl.comp.lang.c Subject: Re: przekręcenie licznika w zmiennej typu int - czy to UB ? Date: Wed, 12 Jan 2022 17:02:16 +0100 Organization: Aioe.org NNTP Server Message-ID: <srmu28$1pcc$1@gioia.aioe.org> References: <9fefc125-650e-496d-a385-87234f47a197n@googlegroups.com> <soogbe$6te$1@gioia.aioe.org> <8b1e1123-77c7-4cf0-ab2e-efd24958795en@googlegroups.com> <sqn2v5$1mm3$1@gioia.aioe.org> <4b1b7198-eb96-44ef-82e4-9ab0afa35473@hooterville.invalid> Reply-To: kaczus@wytnij_poczta.onet.pl Mime-Version: 1.0 Injection-Info: gioia.aioe.org; logging-data="58764"; posting-host="z67upo8gFVo4Z8YX+TqpCw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org"; User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 X-Notice: Filtered by postfilter v. 0.9.2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit