extern schlüsselwort
-
Hallo,
ich denke eine extern deklarierte Variable könnte z.B. ein Zähler sein
der nur von einer einzigen Person verändert werden darf und von den
anderen Entwicklern nur verwendet werden darf.Aber kann der Entwickler diese Variable in seiner datei verändern ?
-
extern bedeutet nur, dass die Variable nicht im deinem Sichtbarkeitsbereich definiert ist, du aber auf sie zugreifen sollst/darfst.
Ändern kannst du sie, solange sie nicht "const" deklariert ist.
-
extern bedeutet doch dass die VAriable in einer anderen Quelldatei
definiert ist ? In seiner eigenen datei deklariert man sie nur
-
gast1 schrieb:
extern bedeutet doch dass die VAriable in einer anderen Quelldatei
definiert ist ? In seiner eigenen datei deklariert man sie nurVielleicht bedeuttet extern, daß man sie nur deklariert, aber nicht definiert.
#include <stdio.h> extern int i;//mal deklarieren int i;//definieren ist auch nicht schlecht extern int i;//zur sicherheit nochmal deklarieren. int main() { extern int i;//ganz ganz sicher gehen i=1; printf("%d\n",i); return 0; } extern int i;//mit guten Gewohnheiten soll man nicht aufhören
-
welchen sinn hätte es sie einfach nur mal zu deklarieren ?
Wird dann kein speicherplatz angelegt, sonst seh ich keinen sinn drin.
-
Externe deklarierte Variable macht man besser global in einer Header-Datei. Dann sind sie überall verfügbar. Das Schlüsselwort 'extern' ist eher vorgesehen für die Deklaration von Funktionen, wenn diese auf verschiedene Quelltextdateien aufgeteilt sind.
Ansonsten deklariert man Variable dort, wo sie benutzt werden!
-
berniebutt schrieb:
Das Schlüsselwort 'extern' ist eher vorgesehen für die Deklaration von Funktionen, wenn diese auf verschiedene Quelltextdateien aufgeteilt sind.
Oh. Dafür habe ich es noch nie verwendet, glaube ich.
-
volkard schrieb:
berniebutt schrieb:
Das Schlüsselwort 'extern' ist eher vorgesehen für die Deklaration von Funktionen, wenn diese auf verschiedene Quelltextdateien aufgeteilt sind.
Oh. Dafür habe ich es noch nie verwendet, glaube ich.
Stimmt, das sollte der Linker - nicht der Compiler - regeln und der tut es heute auch zufriedenstellend. In Olims Zeiten war das nicht immer zuverlässig.