-         

Ergebnis 1 bis 3 von 3

Thema: 'typeof' Vorbild

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.08.2004
    Ort
    Zwolle
    Alter
    61
    Beiträge
    531

    'typeof' Vorbild

    Anzeige

    Hallo,

    wer kann mich ein einfaches Program Vorbild schicken oder anweisen worin 'typeof' einfach erklart wird mit ein paar Beispiele?

    Ins Internet finde ich immer dassselbe fur mich unverstandliche Artikel.

    Gruss

    Henk

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    30.09.2005
    Ort
    Harzrand
    Alter
    35
    Beiträge
    44
    hi ho...

    vielleicht hilft dir das hier weiter -> selbstdefinierte datentypen

    mfg

    NACHTRAG:

    sorry, du hattest ja von typeof gesprochen...seh ich jetzt erst...aber vielleich hilft dir das tutorial ja trotzdem.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    typeof ist eine GNU-C Erweiterung.
    Es liefert den Typ einer Variablen:
    Code:
    int a;
    // Definiere b als Objekt vom gleichen Typ wie a
    typeof (a) b;
    An der Stelle könnte man natürlich auch "int" anstatt "typeof(a)" direkt hinschreiben. Aber man kennt den Typ nicht immer.

    Nehmen wir mal an, du willst ein Makro SWAP schreiben, das 2 Variablen tauscht:
    Code:
    #define SWAP(a,b)             \
       do {                       \
          typeof (a) __dummy = a; \
          a = b;                  \
          b = __dummy;            \
       } while(0)
    Dann kannst du SWAP für alle Typen verwenden: int, unsigned int, float, char*, foo_t, was auch immer.

    typeof kannst du auch verwenden zum Casten oder in sizeof:
    Code:
    typeof (foo) * pfoo = (typeof (foo) *) & foo;
    Allerdings ist sizeof (typeof (x)) gleichbedeutend mit sizeof (x)
    Disclaimer: none. Sue me.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •