Makro v C - "text" to uint32_t
Jan Waclawek
konfera na efton.sk
Úterý Listopad 7 14:09:27 CET 2017
Aha.
No ten error (error: label at end of compound statement) potom znamena
presne to co pise: case je pokladane za label a tesne za nim nemoze byt
zatvaracia zatvorka bloku.
Moze tam byt cokolvek, napriklad aj len samotna bodkociarka; ale pripade
case je z "didaktickych" dovodov vhodne okamzite po napisane case napisat
za neho aj break; no a potom sa Vam tato chyba nestane.
uint32_t N;
switch (N) {
case 'abc':
break;
}
wek
----- Original Message ---------------
Subject: Re: Makro v C - "text" to uint32_t
From: "Pavel Hudecek" <edizon at seznam.cz>
Date: Tue, 7 Nov 2017 13:42:55 +0100
To: "HW-news" <hw-list at list.hw.cz>
>Kontext je čistě testovací kód:
>
>uint32_t N;
>
>switch (N) {
> case 'abc':
>}
>
>stejný error ale vznikal i při pokusech s makry:
>
>#define STRtoINT(x) ((x[3])+((x[2])<<8)+((x[1])<<16)+((x[0])<<24))
>#define STRtoINT(s) *(uint32_t *)(s)
>
>Teď jsem zjistil, že proti makrům jako takovým neprotestuje, ale když se
>použijí v tom case, tak to právě u makra zahlásí ten error (a u case je pak
>že název makra nenašel).
>
>PH
>
>-----Původní zpráva-----
>From: Jan Waclawek
>
>>Ale zajímalo by mě, co přesně znamená ten error.
>
>No to by chcelo vidiet kontext.
>
Další informace o konferenci Hw-list