Witam,
uczę się języka C++ i doszedłem do takiej nowej informacji jaką jest słowo kluczowe "register". Jest ono bardzo cenne dla mnie bo w przyszłości chcę właśnie stworzyć program operujący na wielu danych! Niestety w książce którą posiadam niewiele jest napisane o tym typie i mam do Was kilka pytań.
- Po pierwsze czy zmienna register może być typu double? jak wrzuciłem sobie w kompilator to nie wyskoczył żaden błąd ale w tym kursie: http://changs.wordpress.com/2007/01/24/uzywanie-rejestru-procesora-w-c/ autor wskazuje tylko typ int! i nie wiem czy błąd nie wyskakuje bo jest to prawidłowe czy może kompilator olewa moją "prośbę" i nie wrzuca tej zmiennej do rejestru?
- czy jest sens używania słowa register w pętli w następujący sposób:
for(register int i = 0; i<10; i++)
{
//...
}
czy może w pętlach jest to już uwzględnione jakoś?
3. rozumiem, że do adresu takiej zmiennej nie można się odwołać ale chyba można zrobić coś takiego:
double zmienna_docelowa = 0;
register double zmienna_tymczasowa = 0;
for(register int i=0; i<1000000;i++)
zmienna_tymczasowa += i/30.0;
zmienna_docelowa = zmienna_tymczasowa;
Dzięki temu wszystkie operacje będą przeprowadzane na tymczasowej zmiennej register a później wartość ta będzie przekazana do zwykłej zmiennej, do której będzie można się normalnie odnosić.
-
Czy można tworzyć tablice z register? np. register double tablica[1000];? Tak jak poprzednio kompilator nie protestuje ale nie wiem czy po prostu mnie olewa (nie wrzuca tych zmiennych do rejestru?).
-
jak to ma się do deklarowania tego w funkcjach i klasach?
Dodatkowo czy możecie się podzielić swoimi uwagami na ten temat? bardzo mnie to intryguje i ciekawi a autor kursu z załączonego kursu udowodnił, że jest to bardzo przydatne narzędzie -> szczególnie, gdy się dużo operuje na liczbach :)
Pozdrawiam i dziękuję za wszelką pomoc.