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