Cześć :)
Gdzie mogę znaleźć spis "funkcji niskopoziomowych". Chdozi mi o funkcje, które mają zazwyczaj w nazwie __fffff__
na jaki system? jaki kompilator?
na Linux, gcc
Odradzam używania tego, bo w kolejnej wersji kompilatora mogą zwyczajnie zniknąć i co wtedy poczniesz?
tak, w projektach tego nie będę robił, ale w zadaniu na studia? :)
Musiałem raz zliczyć liczbę bitów w liczbie, to zrobiłem to jednym wywołaniem ;). I do tego w czasie stałym ta funkcja chyba działała.
mielony napisał(a):
Musiałem raz zliczyć liczbę bitów w liczbie, to zrobiłem to jednym wywołaniem ;). I do tego w czasie stałym ta funkcja chyba działała.
int NumberOfSetBits(int i)
{
i = i - ((i >> 1) & 0x55555555);
i = (i & 0x33333333) + ((i >> 2) & 0x33333333);
return (((i + (i >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;
}
Wchodzisz tutaj: https://gcc.gnu.org/onlinedocs/gcc/ naciskasz ctr+f
wpisujesz builtin
i wybierasz to, co Cię interesuje.
Te funkcje nigdzie nie znikną. (W zasadzie to nie są funkcje nawet)
Dodatkowo tu masz "funkcje" dla różnych zestawów instrukcji dla x86: https://software.intel.com/sites/landingpage/IntrinsicsGuide/ GCC powinno to też obsługiwać. Nie ma tam chyba wszystkiego, bo nie ma rozszerzeń od AMD.