Nemyslim ze je korektni ta optimalizace. Myslim ze hrabat optimalizatorem do if ( pointer == NULL ) neni nikdy moc chytre, pokud neni kompilator opravdu genialni. Co treba
d1 = struct_data1, d2 = struct_data2, *s = random_z_( &d1, &d2 ) - &d1; x = (&d1 + s)->mujX; if ( !s ) { ... neco s d2 ... } else { ... neco s d1 ... }
Pochopi GCC ze se nejedna o klasicky NULL test ale vetveni kodu?
To inicializovani promenne s NULL pointrem v linuxu padne tak jako tak (i pri cteni), kdyz ten proces nema tu pamet, ne? Nebo cteni projde? Ale je to teda pekne pitoma frajerina, proc to nenechaji nenainicializovane a nepriradi tu hodnotu az za ifem, to nechapu.
Internet Info Root.cz (www.root.cz)
Informace nejen ze světa Linuxu. ISSN 1212-8309
Copyright © 1998 – 2021 Internet Info, s.r.o. Všechna práva vyhrazena.