Stran 1 od 1

C array[] in *array

OdgovorObjavljeno: 22 Dec 2018, 20:34
Napisal/-a zanka
Bi znal kdo razložiti, čemu sprememba
Koda: Izberi vse
_l2h[i]

v
Koda: Izberi vse
*(_l2h + i)

zmanjša program za 2 bajta. :shock:

_l2h je uint8_t [15] in i uint8_t

Re: C array[] in *array

OdgovorObjavljeno: 22 Dec 2018, 20:36
Napisal/-a zanka
Medtem, ko sprememba
Koda: Izberi vse
_l2h[i] >>= 1;

v
Koda: Izberi vse
*(_l2h + i) >>= 1;

poveča kodo za 8 bajtov.

V obeh primerih imam -O2.

Re: C array[] in *array

OdgovorObjavljeno: 22 Dec 2018, 21:21
Napisal/-a s54mtb
Poglej v disasemblerju. Verjetno je drugače izvedeno indeksiranje.

Re: C array[] in *array

OdgovorObjavljeno: 23 Dec 2018, 00:27
Napisal/-a tilz0R
Dobro bi bilo vedeti kateri prevajalnik imaš, in verzijo.