Taky tak rádi používáte ternární podmínky?
inline INT8 hex2nibble(char a)
{
return a >= '0' && a <= '9' ? a - '0' : a >= 'A' && a <= 'F' ? a - 'A' + 0x0A : a >= 'a' && a <= 'f' ? a - 'a' + 0x0A : - 1;
}
To by ale procesor musel uložit zbytečných 32 b na stack, vykonat funkci tolower(), vyčistit stack, vrátit jiné 32b číslo v registru a až potom provést podobnou funkci se 2 vnořenýma ?: namísto 3. Tak teď nevím, co je efektivnější a radši nechci vědět, co za zlo se skrývý uvnitř funkce tolower().
Nerikej ze to volas v naky inner loop, bych cekal, ze je to naky ctni vstupu od uzivatele nebo tak neco nizkopropustnyho...
Pokud jde o ARM, tak ne vzdy je potreba odkladat na stack, muze predavat i pres registry, nekerym primitivnim fcim to vystaci, nerikam ze zrovna tu.