deklaration/definition
-
Stimme WoWe zu
-
Eine Deklaration ist ein Begriff der Grammatik der Sprache, Definition nicht. Allgemein gilt für Variablen, jede Definition ist eine Deklaration der Variablen (bei Funktionen und Strukturen etc ist die Terminologie wieder anders, natürlich), die Speicher belegt.
Eine Initialisierung legt den Anfangswert einer Variable bei der Definition fest. Eine Zuweisung ist wieder was anderes.
-
bis auf Daniel E.s Beitrag ist alles bloedsinn.
also nur ein kleiner nachtrag, da hier einige verstaendnis probleme haben:
int i;
das ist eine definition.
du sagst dem compiler: ey mann, hier hast du die variable i welcher n int ist - mach was draus.
eine definition ist auch gleichzeitig eine deklaration.extern int i;
das ist eine deklaration.
du sagst dem compiler: ey mann, irgendwo gibts ne variable i welcher n int ist, wo weiss ich nicht, ist aber auch egal, das musst du dir dann raussuchen. ich wills nur verwenden.
eine deklaration verlangt, dass es irgendwo eine definition gibt (sonst gibts die bekannten: 'nicht aufgeloestes symbol'-fehler)eine initialisierung waere:
int i=7;hier ist die definition mit einer initialisierung verbunden.
int i;
i=7;das ist eine wertezuweisung und keine initialisierung.
-
Jo, Chef
-
@Shade of mine
Wenn du dich genau an Stroustrup halten willst, musst du deinen ersten Satz umkehren
int i; ist eine Deklaration, sieh ist aber auch eine Definition da sie auch eine Entität für einen Namen auf den sie sich bezieht definiert.Bis auf diese Haarspalterei hast du vollkommen Recht
(Buch war leider im Büro und nicht zu Hause)Bezug
Biarne Stroustrup
Die C++ Programmiersprache
Addison Wesley
3-8273-2058-5
4.AuflageKapitel 4.9 Deklarationen
-
@PAD:
eine definition ist immer auch eine deklaration.insofern hat stroustrup recht, wenn er sagt, dass diese deklaration eine definition ist.
ich habe gerade in 4.9 nachgelesen, und da sehe ich keinen satz der meinem widerspricht.
bis auf, dass er sagt:
eine deklaration kann auch eine definition sein
und ich sage
eine definition ist immer auch eine deklarationdie saetze sind beide richtig.
oder willst du mir mal schnell ne definition zeigen, die keine deklaration ist?
-
Es war auch nur eine rein syntaktische Korrektur, da deine Antwort genau dem Buch entsprach bis auf diesen einen Dreher.
-
kann sein das ich falsch liege:
//Definition bsp.
struct _a{
char a;
int b;
}a;
//.................// deklaration
struct a i;edit: daher gibt des auch typedef
-
Lies den letzen Text von Shade of mine nochmal der ist eindeutig und richtig
-
PAD schrieb:
Lies den letzen Text von Shade of mine nochmal der ist eindeutig und richtig
wie war das, erst lesen dann posten
-
wie heißt es so schön:
Wie kann ich wissen was ich denke :p
bevor ich sehe was ich postete :p
-
PAD schrieb:
wie heißt es so schön:
Wie kann ich wissen was ich denke :p
bevor ich sehe was ich postete :pes gibt ja ne vorschau-funktion -> damit kann man in die zukunft sehen und erkennen, was man gepostet haben wird, wenn man gedrueckt haette wuerden auf den button Absenden
-
Treffer versenkt