0 Daumen
47 Aufrufe

Frage:

Stimmten no1 und 2?
Den Unterschied zwischen Deklration und Definition?

Deklaration ist klar aber Definition?

Oder gemeint mit Definition:; Wie lautet die Deklaration:ist damit mit Definition gemeint?

Also bedutet es wurde die Daklration so definitert: Dekaration besteht aus int zahl, als Datentype und Datenname. Stimmt>?

blob.png

Text erkannt:

3.2 Deklaration und Definition
Bevor Sie eine Variable verwenden kōnnen, mūssen Sie dem Compiler den Datentyp und den Bezeichner mitteilen. Dieser Vorgang wird als Deklaration bezeichnet. Was ein gūltiger Bezeichner ist, haben Sie bereits in Abschnitt 2.4.1 erfahren. Die Datentypen lernen Sie in diesem Kapitel kennen.
Persōnliches Exemplar fur ismail Eitaweel 45
3 Basisdatentypen in \( \mathrm{C} \)
Damit eine Variable auch verwendet werden kann, muss Speicherplatz dafür reserviert werden. Für das konkrete Speicherobjekt der Variablen im Programm bzw. im ausführbaren Code wird die Definition vereinbart. Eine Deklaration darf mehrmals im Code vorkommen, eine Definition hingegen nur einmal im Programm. Wenn Sie beispielsweise eíne Ganzzahlvariable ivar wie folgt vereinbaren:
int) ivar;
deklarieren Sie eine Variable vom Datentyp int mit dem Bezeichner ivar und definieren sie auch gleichzeitig. Somit ist es in diesem Beispiel nicht falsch zu sagen, dass eine Definition gleichzeitig auch eine Deklaration ist.
Mehrere Bezeichner desselben Datentyps lassen sich auch in einer Zeile, getrennt durch Kommata, vereinbaren:



Code:

von

1 Antwort

+1 Daumen

Die Deklaration legt fest, welche Variable welchen Typ hat.

Die Definition legt fest, wo der Wert der Variablen im Speicher liegt.

int ivar; ist gleichzeitig Deklaration und Definition.

Man kann nicht trennen, welcher Teil die Deklaration und welcher Teil die Definition ist.

Eine Deklaration ohne Definition ist aber möglich. Dazu ein

Beispiel.

// main.c
#include <stdio.h>
#include "header.h"

int main() {
  printf("Variable i hat den Wert %d\n", i);
printf("Variable i hat den Wert %d\n", get_i());
}
// header.h
int i = 5; // Deklaration und Definition
int get_i();
// get_i.c
#include "header.h"

int get_i() {
return i;
}

Kompilieren mit gcc main.c get_i.c ergibt die Fehlermeldung multiple definition of 'i'.

Grund ist, dass über #include "header.h" sowohl in main.c, als auch in get_i.c die Variable i definiert wird.

Lösung.

// header.h
extern int i; // Deklaration ohne Definition
int get_i();
// get_i.c
#include "header.h"

int i = 5; // Deklaration und Definition

int get_i() {
return i;
}
von 3,5 k

Versteh immer nicht ganz.

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community