Hi,
ich traue mich kaum diese Frage zu stellen, doch ich möchte nun Gewissheit und wende mich an euch, auch wenn es noch so trivial sein könnte.
Ich möchte wissen, wie ich eine Deklaration und eine Definition erkennen kann. Meines Wissens werden die Begriffe in Pascal genau umgekehrt verwendet als in C, doch in C gibt's da einige Dinge, die in Pascal so gar nicht gehen.
Fakt ist,
eine Definition reserviert Speicher, eine Deklaration nicht (zumindest in C). Nur muss ich nun erkennen können, was Speicher reserviert und was nicht.
Das hier ist glaub immer so und daher kann ich das nun erkennen:
Code:
int function(int a); // Dekl.
int function (int a) // Def.
{
...
}
int i; // Sowohl Dekl. als auch Def. Wieso, kA.
int i außerhalb der main-Funktion wäre eine Definition und das entsprechende
extern i die zugehörige Deklaration. Sowas geht in Delphi meines Wissens nicht. Aber das ist auch nicht mein Problem, ich hab's nur ergänzend erwähnt.
Mir stellen sich nun einige Fragen und zwar diese:
Code:
const int i = 5; // "sizeof i" liefert 4 Bytes
// mir wurde jedoch gesagt, Konstanten belegen keinen Speicher, was nun?
enum {A, B, C, D}; // "sizeof A" liefert 4 Bytes, ist im Prinzip aber auch eine Konstante
struct komplex { // Ich hätte auf eine Dekl. getippt, aber "sizeof komplex" liefert 8 Bytes, wieso? o.O
double Realteil;
double Imaginaerteil;
};
struct komplex my_complex; // Def. mit 8 Bytes, wie ich's auch gedacht hätte
Könnt ihr mir bitte verständlich erklären, wie ich sicher erkennen kann (ohne Compiler, sondern aus dem Kopf), was eine Definition und was eine Deklaration ist? Diese Begriffe werden sehr oft verwechselt, was normalerweise auch nicht schlimm ist, nur muss ich das (bis einschließlich Dienstag, danach nicht mehr
)wissen.
Grüße