[OSy] Používání bit fields

Pavel Herrmann morpheus.ibis at gmail.com
Fri Nov 30 08:17:44 CET 2012


On Friday 30 of November 2012 00:53:07 Martin Jiricka wrote:
> Dobrý den,
> 
> rád bych se ujistil, zda není problém s používáním céčkovských bit
> fields, tj. třeba:
> 
> struct  s {
>   unsigned int a:1;
>   unsigned int b:7;
> };
> 
> Asi je to zbytečná otázka, když v msimu (mi zatím) vše funguje, ale
> nikdy jsem je neviděl užívat a teď jsem si o nich četl nepěkné věci
> (přenositelnost, výsledný assemblerovský kód, apd.)

Problem by byt nemel, ale pokud to chces jako nekolik flagu tak je rychlejsi 
pouzit explicitni & a usetrit si posun, pokud to chces jako jedno cislo a par 
flagu na konci tak to same (masku na bity ktere jsou cislo). jedina situace kdy 
bitfield opravdu setri praci je kdyz tam je nekolik cisel s ruznyma posunama.

explicitne si zaprve usetris posun, kterej v 99% pripadu nepotrebujes, zadruhe 
je videt ze to je read-modify-write, takze ne atomicky

pokud mas rozumnej prekladac C tak bych problem s fungovanim nevidel, prece 
jen je to soucast normy

Pavel Herrmann




More information about the NSWI004 mailing list