In C sind die typspezifischen Schlüsselwörter von Strukturen, Unions und Aufzählungen obligatorisch, d.h. Sie müssen immer den Namen des Typs (seine Tag ) mit struct
, union
o enum
wenn Sie sich auf den Typ beziehen.
Sie können die Schlüsselwörter loswerden, indem Sie eine typedef
Dies ist eine Form des Verbergens von Informationen, da der tatsächliche Typ eines Objekts nicht mehr sichtbar ist, wenn es deklariert wird.
Es wird daher empfohlen (siehe z. B. die Linux-Kernel-Kodierungsleitfaden , Kapitel 5), dies nur zu tun, wenn Sie tatsächlich quiere um diese Informationen zu verbergen und nicht nur, um ein paar Tastenanschläge zu sparen.
Ein Beispiel dafür, wann Sie eine typedef
wäre ein undurchsichtiger Typ, der immer nur mit den entsprechenden Accessor-Funktionen/Makros verwendet wird.
1 Stimmen
Ich habe gerade hier auf SO gelesen, dass die zweite Option einen Compiler-Fehler verursachen würde?! "Übergabe eines Arguments mit inkompatiblem Zeigertyp" stackoverflow.com/questions/12708897/
8 Stimmen
Eine bessere Antwort (meiner Meinung nach) finden Sie unter aquí .