Svým dotazem jsem myslel takové techniky, jako jsou:
- Zploštění pole (Flattening)
- Poskládání datových typů ve struktuře (problém paddingu a tail paddingu)
- Pointerovou aritmetiku namísto indexů pole
- atd.
To jsou jen základy, ale určitě řešíte v různých aplikacích jiné techniky. Pokud však je to firemní či osobní know-how, tak to sem nepište (možná ani nesmíte).
nm
pointerova aritmetika je sranda a jednoduse to funguje pro indexovani.
int* a;
a je pointer a ukazuje na nejakou adresu v pameti.
hodnotu ulozenou na offsetu/indexu 0 lze ziskat takto *a, a[0], 0[a], *(a+0), *(0+a).
takze stejne lze ukazat na nasledujici misto v pameti a to takto *(a+1), a[1], 1[a], *(1+a).
proto se v c indexuje od 0 protoze ti je offset.
jednoduche a logicke.