Witam.
Zetknąłem się ostatnio z małym problemem: mam za zadanie przyśpieszyć taki fragment kodu:
for (int i=0; i<1000000; ++i)
{
int j = cos();
if (j==0) funkcja0();
else if (j==1) funkcja1();
else if (j==2) funkcja2();
}
"Coś" jest funkcją, która zwraca 0, 1 lub 2. Po zastanowieniu doszedłem do wniosku, iż najlepszym rozwiązaniem byłoby zastosowanie makra, które pobierałoby wynik funkcji "Coś" i dołączało go jako łańcuch znaków do części nazwy funkcji, jaka byłaby wywoływana (na przykład, jeśli j == 0 to makro wywoływałoby funkcja0). Czy napisanie takiego makra jest w ogóle możliwe? Próbowałem, niestety udało mi się tylko napisać makro, które jawnie przyjmuje liczbę jako argument. A może kod ten da się przyśpieszyć w inny sposób?
Będę wdzięczny za pomoc.