Warum können wir nicht deklarieren Sie eine statische variable innerhalb einer Struktur in der Programmiersprache C?

Warum können wir nicht deklarieren Sie eine statische variable innerhalb einer Struktur in der Programmiersprache C?

  • Da die ISO-C-standard sagt, dass Sie nicht. Aber wenn Sie sagen, warum Sie denken, Sie brauchen, könnte es möglich sein, einen workaround für was auch immer es sein werde.
  • Auch in C++ gibt es keine solche Sache wie ein static variable innerhalb einer Struktur. Diese sind static Mitglieder, und es ist wirklich schade, dass C++ überlastungen der static Stichwort für einen weiteren völlig unterschiedlichen semantischen. Insbesondere bedeutet es das Gegenteil von static im Datei-oder Funktionsbereich, nämlich ein symbol, das weltweit sichtbar. Ich sehe wirklich nicht, jede Nutzung, die. Wenn Sie gefragt hätte für extern könnte dies Sinn machen, in C, aber das wäre eine andere Geschichte.
  • static im Funktionsumfang bedeutet, dass alle Aufrufe der Funktion teilen sich die gleiche Instanz einer variable. Ebenso static in einer Klasse bedeutet, dass alle Instanzen der Klasse teilen sich die gleiche Instanz des Feldes. Mir scheint, dass die Wiederverwendung ist hier das Stichwort perfekt, sehr motiviert.
  • Ich habe nicht gesagt, dass es nicht motiviert, es ist einfach nur bedauerlich. So etwas wie common, global was auch immer, wäre angemessener gewesen. Und die Geschichte beginnt bereits in C mit den beiden verschiedenen Bedeutungen (Datei vs. Funktionsumfang), und weiter in C99 mit der Verwendung von static für eine untere Schranke für die array-Größe in function-Parameter. All dies ist unnötig kompliziert die Sprache durch das hinzufügen von Kontext-Sensitivität zu keywords.
InformationsquelleAutor Jagan | 2010-09-19
Schreibe einen Kommentar