Jaka jest różnica między static
globalnej i nie- static
globalnego identyfikatora w C++?Jaka jest różnica między statycznym globalnym i niestatycznym identyfikatorem globalnym w C++?
Odpowiedz
Statyczna ogranicza zakres zmiennej do tego samego translation unit.
statyczna zmienna globalna ma wewnętrzne powiązania.
niestatyczny globalny zmienna ma zewnętrzne powiązania.
dobre Przeczytaj:
What is external linkage and internal linkage?
Jeśli niestatyczny globalny ma zewnętrzne powiązanie, jaki jest pożytek z 'extern'? – rubenvb
@rubenvb: Odpowiedź na pytanie Q została szczegółowo wyjaśniona w linku w linii do odpowiedzi. –
@rubenvb 'extern' oznacza, że jest to deklaracja, a nie definicja, jak prototyp funkcji. –
Globalna static
zmienna jest dostępna tylko w jednostce tłumaczeń (czyli pliku źródłowego) zmienna jest w zmiennej non-static globalne można odwoływać się od innych. pliki źródłowe.
Dokładniej: użycie 'static' zapobiega linkowaniu eksportera symbolu z tej jednostki tłumaczeniowej. – cdhowie
Globalny Non zmienne statyczne są accessable z innymi plikami, natomiast statyczne zmienne globalne nie
są, jeśli nie wiem, jaka jest różnica, poprawna odpowiedź będzie prawdopodobnie jeszcze bardziej mylące dla Ciebie. W skrócie, static
s klasy nie są statyczne w zakresie plików. Statyka klasy jest zasadniczo identyczna ze zwykłymi zmiennymi, ale trzeba będzie się do nich odwołać, dodając przedrostek ich nazwą klasy. Statyka w zakresie pliku to zwykłe zmienne, które są lokalne tylko dla pliku. Aby zrozumieć, co to oznacza, spróbuj dodać dwie zmienne o tej samej nazwie do jednego projektu. Otrzymasz błędy linkera, ponieważ istnieje wiele identycznych symboli. Tworząc symbole statyczne, unikniesz problemów, a nazwa zmiennej nie będzie dostępna spoza pliku.
- 1. Różnica między ** i * w dopasowaniu globalnym (.gitignore)
- 2. Różnica między operatorem globalnym a operatorem członkowskim
- 3. Jaka jest różnica między identyfikatorem @id i @ +?
- 4. deklarowania enum w zakresie globalnym
- 5. Jaka jest różnica między C# i .NET?
- 6. Czy JSONRequest jest globalnym obiektem JavaScript?
- 7. BlackBerry - KeyListener o zasięgu globalnym
- 8. Jaka jest różnica między init() i window.init()?
- 9. Jaka jest różnica między? : i ||
- 10. Jaka jest różnica między $ i $$?
- 11. jaka jest różnica między @ i @@ w module?
- 12. Jaka jest różnica między C++, cel-c i cel-C++?
- 13. Jaka jest różnica między NetFx45WebLink i NetFx45RedistLink
- 14. Jaka jest różnica między java i jsp?
- 15. Jaka jest różnica między = i: = w mysql?
- 16. Jaka jest różnica między! = I =! w Javie?
- 17. Jaka jest różnica między 'i "w PHP
- 18. Jaka jest różnica między! i !! w yaml?
- 19. Jaka jest różnica między * i. * W Matlab?
- 20. Jaka jest różnica między | i || w MATLAB?
- 21. Jaka jest różnica między * i * | * w CSS?
- 22. Jaka jest różnica między JavaBeans i ManagedBean
- 23. Jaka jest różnica między stdin i STDIN_FILENO?
- 24. Jaka jest różnica między Array.GetLength() i Array.Length?
- 25. Jaka jest różnica między operatorem * i operatorem w programie c?
- 26. Jaka jest różnica między instancjamiRespondToSelector i respondsToSelector w Objective-C?
- 27. Jaka jest różnica między memset i memcpy w C
- 28. Jaka jest różnica między _tmain() i main() w C++?
- 29. Jaka jest różnica między zmiennych globalnych i #define w C
- 30. Jaka jest różnica między "typedef" i "using" w C++ 11?
"Statyczny globalny" - co przez to rozumiesz? – Andrzej
@Andrzej jest globalne ze słowem kluczowym 'static' poprzedzającym typ. 'static int x = 5;' na przykład w zasięgu globalnym. –