Przypadek użycia identyfikatora klasy pamięci auto? Rozumiem, że wszystkie zmienne lokalne są domyślnie automatyczne. Ale co robi różnicę przez pisanie wprost auto int a?Jaka jest różnica między zmiennymi lokalnymi auto int ai int a?
Odpowiedz
Nie ma żadnej różnicy.
{
auto int a;
/* ... */
}
i
{
int a;
/* ... */
}
są równoważne.
Powszechną praktyką nie jest umieszczanie specyfikatora auto
.
Mogę to znaleźć w każdym miejscu, co oznacza, że nie ma specjalnego znaczenia słowa kluczowego auto. – vkesh
@vkesh To jest poprawne dla C. "' auto' "oznacza" nie "statyczny", co jest domyślne. Miał większy wpływ na swojego poprzednika B. http://en.wikipedia.org/wiki/B_(programming_language) –
wielkie dzięki za udostępnienie linku. – vkesh
Możliwe są dwa przypadki:
auto
jest domyślnym i wyraźnie dodanie słowa kluczowego osiąga nicauto
jest niedozwolone (np w zmiennej globalnej), w którym to przypadku dodanieauto
zapobiega kod z kompilowania
Czy miałeś na myśli drugi możliwy przypadek, że jeśli dodamy auto do zmiennej globalnej, to zapobiega się definiowaniu zmiennej globalnej ?? Jeśli tak, to co z tego, jeśli coś wiesz? – vkesh
@vkesh: Mówię, że jeśli spróbujesz podać 'auto' dla zmiennej globalnej, kod się nie skompiluje (i tak właściwie działający kompilator). Jeśli chodzi o "jaki jest przypadek użycia", moim punktem jest to, że nie ma żadnego. –
wielkie dzięki za wyjaśnienie. – vkesh
We współczesnym C (C89, C99, C11) słowo kluczowe auto
jest zbędne. Innym niż intent explicite ("To jest niestatyczna zmienna, i mam na myśli!"), Nie służy to już żadnemu celowi. Jest to pozostałość po historii C przeniesionej z B, ale podobnie jak słowo kluczowe entry
stało się praktycznie przestarzałe.
Użyłem go raz w życiu. Było to we wpisie IOCCC w połączeniu z niejawny int [? Gdzie jest auto używane słowo kluczowe C]
drive() { auto motive; ... }
- 1. Jaka jest różnica między static int ai int a?
- 2. Jaka jest różnica między "int * a = new int" i "int * a = new int()"?
- 3. jaka jest różnica między: %% a% zmiennymi% zmiennych?
- 4. Jaka jest różnica między Uint32 a unsigned int w C++?
- 5. Różnica między int i deklaracją int int
- 6. Różnica między int * i int * i
- 7. Jaka jest różnica między `extern int (x) []` a `extern int x []` w C?
- 8. Jaka jest różnica (w przypadku zastosowania do mojego kodu) między INT (10) a INT (12)?
- 9. Jaka jest różnica między literałem a zmiennymi w Pythonie?
- 10. Różnica między void (int) i void (*) (int)
- 11. Jaka jest różnica między auto a = A (3) i A a (3)?
- 12. Jaka jest różnica między "krótkim int" i "short" wc?
- 13. Jaka jest różnica między "int" i "uint"/"long" i "ulong"?
- 14. Jaka jest różnica między int i integer w MySQL 5.0?
- 15. Jaka jest różnica między int() i floor() w Pythonie 3?
- 16. Jaka jest różnica między int x = 1 i int x (1) w C++?
- 17. C: różnica między (int) x a podłogą (x)?
- 18. Jaka jest różnica między "const int & jj" i "int & const jj"?
- 19. Jaka jest różnica między unsigned int i signed int w C?
- 20. Jaka jest różnica między zmiennymi klasowymi różnych typów?
- 21. Różnica między int a [5] i int (& a) [5] w dedukowaniu parametru szablonu
- 22. Pointer vs Array w definicji funkcji: jaka jest różnica między void fct1 (int * p) a void fct1 (int p [])?
- 23. Jaka jest różnica między przekazywaniem It.IsAny <int>() a wartością It.IsAny <int>() do metody konfiguracji
- 24. Czy istnieje różnica między std :: map <int, int> a std :: map <const int, int>?
- 25. Czy istnieje różnica między int x {}; i int x = 0 ;?
- 26. porównanie między wskaźnikiem a całkowitą ('int *' i 'int')
- 27. Jaka jest różnica między zmiennymi środowiskowymi "USER" i "USERNAME"?
- 28. Jaka jest różnica między zmiennymi niezmiennymi i stałymi w Rust?
- 29. Jaka jest różnica między $ hostem a $ http_host w Nginx
- 30. Jaka jest praktyczna różnica między std :: nth_element a std :: sort?
Możliwy duplikat (http://stackoverflow.com/questions/2192547/where-is-the- c-auto-keyword-used) –