matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenC/C++typedef struct
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Geschichte • Erdkunde • Sozialwissenschaften • Politik/Wirtschaft
Forum "C/C++" - typedef struct
typedef struct < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

typedef struct: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 13:07 Di 15.04.2008
Autor: Auron2009

Habe eine Frage zu structs und typedef. Ich kannte bisher nur folgende Form:

typedef struct
{
   int tag;
   char monat[10];
   int jahr;
} Datum;

Nun könnte ich mit
Datum geburtstag;
ein Struct mit Namen "geburtstag" vom Typ "Datum" erzeugen.


Nun habe ich jedoch folgendes gesehen:

typedef struct l_knoten
{
   int l_daten;
   struct l_knoten *l_next;
} L_knoten;

Also einmal ein Name vor den geschweiften Klammern und einmal dahinter (l_knoten bzw. L_knoten). Wo ist der Unterschied bzw. welche Funktionen haben die beiden Namen?


Vielen Dank für eure Hilfe!

        
Bezug
typedef struct: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:37 So 20.04.2008
Autor: Auron2009

weiß vielleicht doch noch jemand eine Antwort? Danke!

Bezug
        
Bezug
typedef struct: Antwort
Status: (Antwort) fertig Status 
Datum: 16:15 So 20.04.2008
Autor: andihit

Hi,

Mit

typedef struct l_knoten
{
   int l_daten;
   struct l_knoten *l_next;
} L_knoten;

Deklarierst du in deiner Struktur einen Zeiger auf die eigene Struktur (in der Definition "l_knoten").


Wenn du
typedef struct
{
   int l_daten;
   struct L_knoten *l_next;
} L_knoten;

schreiben würdest, gibt's später bei der Zuweisung folgende Warnung: "assignment from incompatible pointer type".

Weil der Compiler das L_knoten noch nicht kannte bei der Deklarierung (merkwürdigerweise kann man bei der Definition auch "struct irgendwas *l_next;" schreiben, und die Warnung kommt erst bei der Zuweisung ... der C Compiler ist eben nicht gesprächig ;))

Bezug
                
Bezug
typedef struct: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:38 So 20.04.2008
Autor: Auron2009

Also ist das l_knoten nur ein Name, damit der Compiler weiß auf was der Zeiger im Struct zeigen soll. Also sind sowohl l_knoten als auch L_knoten Namen für den struct.
Könnte man jetzt später im Programm auch mittels "struct l_knoten irgendwas" ein Struct erzeugen oder geht das weiterhin nur mit "struct L_knoten irgendwas"?

Bezug
                        
Bezug
typedef struct: Antwort
Status: (Antwort) fertig Status 
Datum: 21:30 Mo 21.04.2008
Autor: rainerS

Hallo!

> Also ist das l_knoten nur ein Name, damit der Compiler weiß
> auf was der Zeiger im Struct zeigen soll. Also sind sowohl
> l_knoten als auch L_knoten Namen für den struct.

Nein, nicht ganz. l_knoten ist ein Name (Tag), der nur in Verbindung mit dem speziellen Wort struct auftreten kann. L_knoten ist ein Typ, der durch typeder deklariert wurde. Das Tag dient nur dazu, verschiedene Deklarationen miteinander in Verbindung zu bringen. Zum Beispiel funktioniert auch folgendes:

typedef struct l_knoten L_knoten

(Hier wird der Typ L_knoten als ein struct mit Namen l_knoten deklariert. Das ist eine unvollständige Deklaration.)

1: struct l_knoten
2: {
3:    int l_daten;
4:    struct l_knoten *l_next;
5: };


(Hier wird die Deklaration vervollständigt. Von nun an kann man Variablen definieren.)

>  Könnte man jetzt später im Programm auch mittels "struct
> l_knoten irgendwas" ein Struct erzeugen oder geht das
> weiterhin nur mit "struct L_knoten irgendwas"?

struct L_knoten ist falsch, denn L_knoten ist ja schon ein Typ. Die korrekte Definition einer Variablen wäre

L_knoten var1;

oder

struct l_knoten var1;

Viele Grüße
   Rainer


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "C/C++"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]