rofl236
Goto Top

typedef struct

Frage zu folgenden Code...

Hallo, in den unten stehenden Code-Zeilen sind zwei typdef Anweisungen ausgeführt worden,
beide beinhalten struct als Typ. Wird durch (XXX) vom zweiten auf das erste typedef zugeriffen?


typedef struct Name 1
{
long (*Variable1)(const char*, long);

.....
.....
.....

} XXX;


typedef struct Name2
{
long (*Variable2)(XXX
);

.....
.....
.....

} YYY;


MfG
rofl236

Content-Key: 71336

Url: https://administrator.de/contentid/71336

Printed on: April 25, 2024 at 11:04 o'clock

Member: Guenni
Guenni Oct 21, 2007 at 17:36:15 (UTC)
Goto Top
@rofl236

Hi,

Wird durch (XXX) vom zweiten auf das erste typedef zugeriffen?


Es wird nicht darauf zugegriffen, sondern du benutzt im zweiten
typedef einen Datentyp vom ersten typedef, allerdings mußt du die
C-Syntax Datentyp variable zur Deklaration beibehalten.

typedef struct Name1{
	long d;
	char c;
	} XXX;


typedef struct Name2{
	//Member vom Typ XXX
	XXX vari1;
	XXX vari2;
	} YYY;

Im Programm würde dann eine Variable so deklariert:

YYY z;

z ist dann eine Variable vom Typ YYY, der ein (oder mehrere) Member
von Typ XXX enthält.

z.vari1.d=123456789;
z.vari1.c='A';
z.vari2.d=98765;
z.vari2.c='Z';

Einfacher ist es, die Eigenschaften wie bei Klassen zu vererben:

typedef struct Adresse{
	char vorname[16];
	char nachname[16];
	// usw;
	} Adresse;

	typedef struct BV{
	char Bank[32];
	long Konto;
	long BLZ;
	// usw.
	}Bankverbindung;

//Eine Struktur vom Typ Person die alle Member von Adresse
//und Bankverbindung enthält 
	typedef struct Person:public Adresse,Bankverbindung{
	//weitere Variablen möglich
	}Person;
	
//Eine Array-Variable vom Typ Person die alle Member von Adresse und
//Bankverbindung enthält 
	Person person[100];
	
	strcpy(person.nachname,"Schmitz");  
	person.Konto=12345;
	usw.	

Gruß
Günni