ceckovy kviz 3 (na uprsane dlhe vikendy)
Jan Waclawek
konfera na efton.sk
Pátek Září 8 10:07:57 CEST 2023
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
Další informace o konferenci Hw-list