
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;