Bezzeg amikor a monguzok aszongyák, hogy wörxformi, akkor kapják be.@saxus:azokat, amik viszont fordítási időben bekerülnek a rendszerbe, azokat már igen, szóval az előbbi állításom nem minden esetben állja meg a helyét. Értem, tehát két belefordított statikus konstans sztring között tud ilyet, ez így már működhet, csak az értelmét nem látom, hiszen mi értelme van annak, hogy 'kecske' == 'macska', vagy 'kecske' == 'kecske', amikor ezt elméletileg nem is lenne szabad úgy lefordítania, hogy belerakja a komparátort, simán false és true kéne, hogy beleforduljon.@kemi:Lehetnek ott negatív, meg 255-nél nagyobb értékek is, és ha ezt képen akarod megjeleníteni, akkor vágni kell a 0-255 tartományra. Az utóbbit megcsinálja, ha az intet charba castolod, de az úgy túl fog csordulni, és nem lesz "szép" a képen. Ja értem. Akkor marad a másik kettő.@kemi:A javaslatod majd kipróbálom, ha lesz rá időm. Szerintem a két if eltakarítása kéne, hogy a leggyorsabb verzió legyen, a második csak egy if-et takarít el, azt is csak félig.
De itt egy harmadik javaslat, ez fixen kiiktatja az egyik if-et.int sel[2] = {0, 255}; if (p < 0 || p > 255)
{
p = sel[p < 0];
} Vagy ugyanez fordítva.const signbit = (sizeof(int) << 3) - 1;
int sel[2] = {255, 0}; if (p < 0 || p > 255)
{
p = sel[p >> signbit]; // lehet shr gyorsabb, mint cmp
} |