Warum können wir keine statische Variable innerhalb einer Struktur in der Programmiersprache C deklarieren?Warum können wir keine statische Variable innerhalb einer Struktur in der Programmiersprache C deklarieren?
Antwort
In C++ hat, ist eine Struktur im Grunde eine Klasse mit allen Mitgliedern der Öffentlichkeit, so dass eine statische Variable macht es sinnvoll.
In C ist eine Struktur ein zusammenhängendes Stück Speicher mit Feldern. Eine statische Variable kann nicht erstellt werden, ohne diese zu ändern (um eine statische Variable zu implementieren, müssen Sie auf einen einzelnen Speicherort von allen Strukturen dieses Typs verweisen), und das wäre ein großer Unterschied in der Komplexität ohne großen Nutzen.
Weil C nicht C++ ist.
Weil der C-Standard es nicht erlaubt.
Weil es keine sinnvolle Interpretation in C.
(zing) –
Da in c können wir nicht auf statische Variable mit Strukturnamen zugreifen. In C++ können wir auf statische Membervariable mit Klassennamen wie unten zugreifen.
Classname :: staticVariableName
'C' stucture bieten keine solche Anlage.
- 1. Warum können wir statische Variablen nicht innerhalb eines Funktionskörpers deklarieren, selbst wenn die Funktion statisch ist?
- 2. Warum können wir statische Elementvariable in der inneren Klasse in Java nicht deklarieren?
- 3. Warum können wir innerhalb einer Methode keine private lokale innere Klasse deklarieren?
- 4. So deklarieren/setzen Sie eine statische Variable innerhalb einer Methode
- 5. Warum können wir statische Endglieder haben, aber keine statische Methode in einer inneren Klasse?
- 6. C++: Warum können wir eine Variable im Fall des Schalters
- 7. Warum brauchen wir statische Konstruktoren?
- 8. Warum müssen wir statische Variable als final in der inneren Klasse deklarieren?
- 9. Warum sollten wir eine Schnittstelle innerhalb einer Klasse deklarieren?
- 10. Wie können wir lokale Variable deklarieren und ihren Wert ausgeben?
- 11. Warum eine Variable oder Funktion in C statisch deklarieren?
- 12. Deklarieren und definieren Sie statische Variable in C++ Header?
- 13. Definieren einer Variable in Go Programmiersprache
- 14. statische Variable innerhalb der Funktion vs statische Klasse Variable in C++
- 15. Warum deklarieren Sie eine statische Variable in main?
- 16. Können wir Enum innerhalb einer Funktion definieren?
- 17. Warum können Sie keine Variable im Ausdrucksteil einer do while-Schleife deklarieren?
- 18. Bash: globale Variable innerhalb einer Funktion deklarieren
- 19. Warum können wir keine ausdrucksbasierten Konstruktoren verwenden?
- 20. Können wir statische Funktionen in tcOO definieren?
- 21. Warum verschwindet diese Variable in einer Struktur?
- 22. Warum können wir nicht ‚this‘ Schlüsselwort in einer statischen Methode
- 23. Warum müssen wir beim Hinzufügen einer Methode zu einer Struktur in Golang einen Variablennamen deklarieren?
- 24. Deklarieren einer Const-Variable in R
- 25. Warum können statische Klassen keine Destruktoren haben?
- 26. Warum können wir keine Objektliste bekommen?
- 27. Schnittstellen können keine Typen deklarieren
- 28. Können wir statische virtuelle Funktionen haben? Wenn nicht, dann WARUM?
- 29. Warum können nicht-statische Felder in Strukturen nicht initialisiert werden?
- 30. PHP - warum konnte ich statische const Variable nicht deklarieren?
Weil ISO C Standard besagt, dass Sie nicht können. Aber wenn Sie sagen, warum Sie denken, dass Sie es brauchen, könnte es möglich sein, einen Workaround für das bereitzustellen, was auch immer es sein mag. –
Selbst in C++ gibt es keine so genannte "statische" Variable in einer Struktur. Dies sind 'statische' Member, und es ist wirklich schade, dass C++ das' static' Schlüsselwort für eine weitere völlig andere Semantik überlädt. Insbesondere bedeutet es das Gegenteil von "statisch" im Datei- oder Funktionsumfang, nämlich ein Symbol, das global sichtbar ist. Ich sehe wirklich keinen Nutzen davon. Hättest du nach "extern" gefragt, könnte das * in C sinnvoll sein, aber das wäre eine andere Geschichte. –
@Jens: 'static' im Funktionsumfang bedeutet, dass alle Aufrufe der Funktion die gleiche Instanz einer Variablen teilen. Entsprechend bedeutet "statisch" in einer Klasse, dass alle Instanzen der Klasse die gleiche Instanz des Feldes teilen. Es scheint mir, dass die Wiederverwendung des Keywords perfekt motiviert ist. –