Ein neuer Datentyp für komplexe Zahlen
Als ein weiteres Beispiel für Datentypen wollen wir hier den Real- und Imaginärteil einer komplexen Zahl zu einem neunen Datentyp zusammenfassen. Es werden drei Varianten vorgestellt:
1. Variante: Separate Definition von Struktur und Datentyp:
/* 1. Variante */
struct sComplex {
double re;
double im;
};
typedef struct sComplex tComplex;
2. Variante: Definition von Struktur und Datentyp in einem Schritt:
/* 2. Variante */
typedef struct sComplex {
double re;
double im;
} tComplex;
3. Variante: Direkte Definition des Datentyps ohne einen Namen für die Struktur:
/* 3. Variante */
typedef struct {
double re;
double im;
} tComplex;
Verwendung des Datentyps:
/* Definition der Variablen */
tComplex a = { 1, 2 };
tComplex b = { 3, 4 };
tComplex c;
/* Multiplikation */
c.re = a.re*b.re-a.im*b.im;
c.im = a.re*b.im+a.im*b.re;
Der vollständige Quellcode (mit der 3. Variante):
/*
Dateiname: typedef.c
Autor: Robert Heß
Version: 1.1
Datum: 19.10.2009
Beschreibung: Beispiel für typedef
*/
/* 3. Variante */
typedef struct {
double re;
double im;
} tComplex;
int main()
{
/* Definition der Variablen */
tComplex a = { 1, 2 };
tComplex b = { 3, 4 };
tComplex c;
/* Multiplikation */
c.re = a.re*b.re-a.im*b.im;
c.im = a.re*b.im+a.im*b.re;
}
Seite 20
|