Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Was ist der Unterschied zwischen struct und typedef struct

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
12.05.2004, 08:47 Uhr
~Ukalo
Gast


Hallo,

kann mir jemand kurz erläuter was der Unterschied zwischen struct und typedef struct ist.

Wir mussten in der Aufgabe zwei Strings und zwei integer Werte zu einer Structur zusammenfassen.Das komplett Ding soll Messdaten heisen.

Wie fasse ich das genau zu einer struct bzw Typedef struct zusammen und was ist der Unteschied.

string Datum
string Ort
int Messwert
int Messzyklus

Vielen Dank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.05.2004, 09:01 Uhr
(un)wissender
Niveauwart


In C++ gibt es da keinen Unterschied (da ist quasi das typedef ins struct eingebaut).
In C ist das anders.


Vereinbarung einer Struktur

C++:
struct Messdaten
{
string Datum
string Ort
int Messwert
int Messzyklus
};



Angesprochen wird das mit struct Messdaten myName.

Vereinbarung einer Struktur mit einem expliziten Namen

C++:

typedef struct Messdaten_
{
string Datum
string Ort
int Messwert
int Messzyklus
} Messdaten;



Angesprochen wird das mit Messdaten myName.
Du könntest auch das Konstrukt ohne typedef nehmen und dann

C++:
typedef struct Messdaten_ Messdaten;


schreiben.

typedef führt nur einen anderen Namen ein für struct Messdaten_.


Bearbeitung:

Wobei string immer C++ ist, da brauchst du das typedef dann halt nicht.
Es sei denn string ist wieder ein typedef für char*, oder so.


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 12.05.2004 um 09:03 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.05.2004, 11:39 Uhr
typecast
aka loddab
(Operator)


Die Suchfunktion ist auch nett ;-)

Nich ganz deine Frage, aber auch nett zu wissen

Hier

Und und vor allem hier klicken
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.05.2004, 16:03 Uhr
Cebinem



Also soweit ich weiß ist "typedef" ein Synonym das einen Aliasnamen für die Wortfolge eines Varibalen- oder Konstantentyps erzeugt.
Beispiel:

C++:
typedef unsigned short int USHORT; /* jetzt muss man nicht immer wieder  "unsigned short int" schreiben, dafür kann man nun "USHORT" schreiben */


Ob das auch für C gilt weiß ich nicht.

MFG
Cebinem
--
Jetzt sind wir hier, was jetzt geschieht, geschieht uns. - Anna Seghers
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.05.2004, 16:17 Uhr
virtual
Sexiest Bit alive
(Operator)


Na, da diese Frage ja schon fast langweilig ist (weil oft beantwortet), eröffne ich hier kurzerhand ein Rästel:
Welche Unterschiede/Vorteile/Nachteile haben folgende fast identischen Codefragmente:

C++:
[b]typedef[/b] struct
{
     foo bar;
} baz;


und

C++:
stuct _baz
{
     foo bar;
};
[b]#define[/b] baz struct _baz


Oder anders gefragt: Warum typedef, wenn es schon define gibt?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 13.05.2004 um 16:17 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.05.2004, 16:22 Uhr
0xdeadbeef
Gott
(Operator)


Der zweite kompiliert nicht, weil stuct kein gültiges Keyword ist.

Ich würde sagen, es geht dabei vor allem um Code wie:

C++:
struct _baz
{
     foo bar;
};
#define baz struct _baz
/* ... */
int baz; /* Ups... int struct _baz; *hust* */


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: