• 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
106 wizyt
pytanie zadane 25 stycznia w C i C++ przez dawid2002 Bywalec (2,180 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 (195,000 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 Bywalec (2,180 p.)

Dzięki za odpowiedź , masz ode mnie najyes

+1 głos
odpowiedź 25 stycznia przez Hipcio Szeryf (98,160 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 Bywalec (2,180 p.)
Dzięki za odpowiedź!

Podobne pytania

0 głosów
1 odpowiedź 34 wizyt
pytanie zadane 26 marca w C i C++ przez xFanti Początkujący (490 p.)
Porady nie od parady
Wynikowy wygląd pytania, odpowiedzi czy komentarza, różni się od tego zaprezentowanego w edytorze postów. Stosuj więc funkcję Podgląd posta znajdującą się pod edytorem, aby upewnić się, czy na pewno ostateczny rezultat ci odpowiada.Podgląd posta

65,788 zapytań

112,438 odpowiedzi

237,543 komentarzy

46,728 pasjonatów

Przeglądających: 237
Pasjonatów: 13 Gości: 224

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.

...