Dlaczego nie możemy zadeklarować zmiennej statycznej w strukturze w języku programowania C?Dlaczego nie możemy zadeklarować zmiennej statycznej w strukturze w języku programowania C?
Odpowiedz
w C++, struct jest w zasadzie klasa ze wszystkimi członkami publicznych, a więc zmienna statyczna ma sens tam.
W języku C struktura jest ciągłym fragmentem pamięci z polami. Zmienna statyczna nie może zostać utworzona bez zmiany tej wartości (w celu zaimplementowania statycznego trzeba odnieść się do pojedynczej komórki pamięci ze wszystkich struktur tego typu), a to byłoby dużą różnicą w złożoności bez większych korzyści.
Ponieważ C nie jest C++.
Ponieważ standard C nie pozwala na to.
ponieważ nie ma znaczącego interpretację w C
(zing) –
Ponieważ w c nie możemy uzyskać dostępu do zmiennej statycznej z nazwą struktury. W języku C++ możemy uzyskać dostęp do statycznej zmiennej składowej z nazwą klasy, jak poniżej.
ClassName :: staticVariableName
stucture 'C' nie zapewniają takiego obiektu.
- 1. Dlaczego w języku Java nie ma lokalnej zmiennej statycznej?
- 2. PHP - dlaczego nie mogłem zadeklarować zmiennej stałej statycznej?
- 3. Dlaczego nie możemy zadeklarować aliasów nazw w klasie?
- 4. inicjowanie zmiennej statycznej w nagłówku
- 5. dlaczego nie możemy zadeklarować obiektu klasy w tej samej klasie?
- 6. Przypisywanie zmiennej statycznej do innej zmiennej statycznej. Dlaczego powoduje błąd?
- 7. C++ odniesienia na statycznej zmiennej
- 8. Dlaczego możemy mieć statyczne końcowe elementy, ale nie możemy mieć statycznej metody w wewnętrznej klasie?
- 9. Wywołanie metody statycznej w języku C#
- 10. Jak używać zmiennej statycznej (BOOL) w Objective C
- 11. ustawienie zmiennej statycznej w java
- 12. Dlaczego nie można zadeklarować funkcji z typem powrotu VAR?
- 13. CMS w języku programowania funkcjonalnego
- 14. Czy możemy wydrukować wiadomość java na konsoli bez użycia głównej metody, zmiennej statycznej i metody statycznej?
- 15. Niezdefiniowany odniesienia do zmiennej statycznej
- 16. Inicjalizacja C++ niestałej statycznej zmiennej składowej?
- 17. Nie można zadeklarować zmiennej szablonu bez jej definiowania.
- 18. Czy mogę zmienić kolejność inicjalizacji zmiennej statycznej w C++?
- 19. Jaki jest czas życia zmiennej statycznej w funkcji C++?
- 20. Jak zadeklarować klasę w języku C#, aby móc łańcuch metod?
- 21. Jak powinienem zadeklarować ciągi w strukturach C?
- 22. Jak utworzyć łącze do biblioteki statycznej w języku C?
- 23. Dlaczego nie ma bezpośredniej implementacji worka w strukturze zbioru java?
- 24. Jak uzyskać dostęp do metody statycznej w języku C#?
- 25. INotifyPropertyChanged dla zmiennej statycznej
- 26. Najlepszy sposób na refactor tej klasy statycznej w języku C#?
- 27. Co to jest "1ULL" w języku programowania
- 28. Czy w języku C# występuje odpowiednik zagnieżdżonej klasy statycznej Java?
- 29. Jak wywołać metodę niestatyczną z metody statycznej w języku C#?
- 30. Czy możemy napisać makro w języku C# dla Excela
Ponieważ standard ISO C mówi, że nie można. Ale jeśli powiesz, dlaczego uważasz, że jest ci potrzebna, możliwe będzie zapewnienie obejścia tego, co będzie. –
Nawet w C++ nie ma czegoś takiego jak zmienna 'static' wewnątrz struktury. Są to "statyczne" elementy i naprawdę szkoda, że C++ przeciąża 'static' słowo kluczowe dla jeszcze innej zupełnie innej semantycznej. W szczególności oznacza to przeciwieństwo słowa 'static' w pliku lub zakresie funkcji, a mianowicie symbol globalnie widoczny. Naprawdę nie widzę żadnego pożytku z tego. Gdybyś poprosił o "extern", to * mogłoby * mieć sens w C, ale to byłaby inna historia. –
@ Jens: 'static' w zakresie funkcji oznacza, że wszystkie wywołania funkcji współużytkują tę samą instancję zmiennej. Podobnie, 'static' w klasie oznacza, że wszystkie wystąpienia klasy dzielą tę samą instancję pola. Wydaje mi się, że ponowne użycie słowa kluczowego jest doskonale zmotywowane. –