Makro v C - "text" to uint32_t

Josef Štengl ok1ced na nagano.cz
Úterý Listopad 7 14:03:47 CET 2017


A co vygenerovat si soubor s makry pro case ?

Esli to správně chňápu, tak vstup je řetězec 3 znaků. To jde převést na 32bitů (kde to píšete, že vám dělá starosti 
zarovnávání?), a do switche to jde dát (jak bylo psáno výše).

Někam vedle si napíšete co chcete mít v case a kódy převedete na čísla (? define), vygenerovaný soubor #icludnete.
Pak použijete case s define ...

A na začátek souboru napíšete, že je to jen pro danou platformu (protože endinan :-).



Dne 7.11.2017 v 13:42 Pavel Hudecek napsal(a):
> 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.
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list