Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Ako pochopiť tento programátorský zvrat?

active = !!(data & 0x04)

To, čo som nepochopil je to, prečo sú tam dva výkričníky. Vie to niekto znalý programovania objasniť?
Myslím si, že je to chyba a mal by tam byť len jeden výkričník ako negácia výsledku hodnoty v zátvorke.
Je moja úvaha správna?

Celá konštrukcia je takáto:
/* Read GPIO pin2 as Hardware controlled radio state */
RTMP_IO_READ32(pAd, GPIO_CTRL_CFG, &data);
active = !!(data & 0x04);

if (!active)
{
RTMPSetLED(pAd, LED_RADIO_OFF);
*(UINT8 *)pData = 0;
}
else
*(UINT8 *)pData = 1;

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny