ceckovy kviz 3 (na uprsane dlhe vikendy)

Aleš Procháska ales.prochaska na divesoft.com
Pátek Září 8 10:18:03 CEST 2023


Dobrý, to si přidám do sbírky nečekaných důsledků implicitních konverzí.

Aleš Procháska

>-----Original Message-----
>From: Hw-list <hw-list-bounces na list.hw.cz> On Behalf Of Jan Waclawek
>Sent: Friday, 08 September, 2023 10:08
>To: HW-news <hw-list na list.hw.cz>
>Subject: Re: ceckovy kviz 3 (na uprsane dlhe vikendy)
>
>Inkrement _Bool nema rovnake spravanie ako inkrement unsigned
>premennej so sirkou 1 bitu.
>
>Majme _Bool b; b = 0; b++; - vysledok je 1 podla ocakavania.
>
>Ale ak b = 1; b++; prekladac vezme hodnotu b, 1, skonvertuje ju implicitne na
>unsigned int, to je 1, inkrementuje, to je 2, a konvertuje ju spat na _Bool,
>vysledok coho je 1 (toto je prave ten chytak).
>
>Dekrement vsak funguje podla ocakavania: b = 1; b--; => b == 0. b = 0; b--; =>
>b == 1.
>
>Derek Jones mal samozrejme nutkanie toto nepopisat explicitne, ale uviest to
>v takejto hadankovej forme.
>
>wek
>
>
>
>----- Original Message ---------------
>
>Znova z nevycerpatelnej studnice perverzit, Dereka Jonesa:
>
>#include <stdio.h>
>
>void f(_Bool p)
>{
>  _Bool q = p;
>
>  q--; q++;
>  p++; p--;
>
>  if (p == q)
>  printf("This implementation is not conforming\n"); }
>
>Upozornujem, ze ten subject nie je nahodny, hoci mozno niekto vie odpoved
>z fleku; ak ano, je pre mna skutocne borec.
>Kedze nasledujuci vikend asi nebude uprsany, v nasledujucom poste bude
>hned odpoved (t.j. ak niekto si chce pockat na uprsany vikend, nech ho
>necita).
>
>wek
>
>_______________________________________________
>HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz
>http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list