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