AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [C] Deklarationen und Definitionen erkennen
Thema durchsuchen
Ansicht
Themen-Optionen

[C] Deklarationen und Definitionen erkennen

Ein Thema von Matze · begonnen am 1. Jul 2007 · letzter Beitrag vom 2. Jul 2007
 
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#1

[C] Deklarationen und Definitionen erkennen

  Alt 1. Jul 2007, 22:04
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
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz