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