• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed C++ zmienne w rejestrze

0 głosów
101 wizyt
pytanie zadane 25 stycznia w C i C++ przez dawid2002 Obywatel (1,630 p.)
zamknięte 25 stycznia przez dawid2002

Witam! Zastanawia mnie jedna sprawa.

#include <iostream>

using namespace std;

register int a; // kompilator pokazuje błąd!

int main()
{
   register int b; // działa poprawnie

   return 0;
}

Dlaczego gdy umieszczę deklaracje zmiennej z modyfikatorem register poza jakoś funkcją to kompilator pokazuje błąd , a gdy będzie ta deklaracja w funkcji to jest wszystko w porządku?

komentarz zamknięcia: znam już odpowiedź

2 odpowiedzi

+2 głosów
odpowiedź 25 stycznia przez adrian17 Mędrzec (174,620 p.)
wybrane 25 stycznia przez dawid2002
 
Najlepsza
Bo, zgodnie z językiem, zmienne globalne nie mogą być `register` - co ma sens; nie wyobrażam sobie trzymania wartości w rejestrze przez cały czas życia programu.

A konkretniej... w obecnej wersji standardu C++a `register` został usunięty i kompilatory w ogóle nie pozwalają na jego używanie - więc osobiście rekomenduję zapomnienie o jego istnieniu.
komentarz 25 stycznia przez dawid2002 Obywatel (1,630 p.)

Dzięki za odpowiedź , masz ode mnie najyes

+1 głos
odpowiedź 25 stycznia przez Hipcio Szeryf (91,180 p.)

https://en.cppreference.com/w/cpp/language/storage_duration

The register specifier is only allowed for objects declared at block scope and in function parameter lists.|

Tylko kompilator GCC może pozwolić na globalne użycie (link). Ogólnie nie ma sensu używać register dla optymalizacji, bo lepiej zrobi to kompilator (z włączoną podstawową optymalizacją). Poza tym od C++17 został usunięty.

komentarz 25 stycznia przez dawid2002 Obywatel (1,630 p.)
Dzięki za odpowiedź!

Podobne pytania

0 głosów
1 odpowiedź 29 wizyt
pytanie zadane 26 marca w C i C++ przez xFanti Początkujący (420 p.)
0 głosów
1 odpowiedź 67 wizyt
Porady nie od parady
Zadając pytanie postaraj się o szczegółowe opisanie problemu oraz udostępnienie wszystkich istotnych informacji (kody źródłowe, zrzuty ekranu itp.).Opisanie problemu

62,402 zapytań

108,542 odpowiedzi

226,584 komentarzy

35,748 pasjonatów

Przeglądających: 208
Pasjonatów: 16 Gości: 192

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...