2009-07-18 13 views

Antwort

16

Das _t Suffix bedeutet "Typ"; Es ist keine Regel, dass Sie es verwenden müssen, es ist nur eine Konvention gefolgt von vielen Standardtypen aus den Standardbibliotheken. Sie sind normalerweise in den Header-Dateien definiert, die sie verwenden, oder manchmal in Header-Dateien, die von diesen Headern enthalten sind.

size_t ist in <stddef.h> definiert und time_t ist in <time.h> definiert. key_t ist kein Standard-C-Typ, es ist so wahrscheinlich in der Bibliothek Header definiert, für was auch immer Bibliothek es in verwendet wird

Wenn Sie genau die Header-Datei eine Definition herkommt wissen wollen, können Sie den Präprozessor ausführen können.

gcc -E file.c -o file.i 

Die Preprozessor-Ausgabe file.i zeigt Ihnen alle verschachtelten Include-Dateien. Sie können dann nach der Definition suchen und dann nach oben blättern, bis Sie den Kommentar finden, der angibt, aus welcher Header-Datei er stammt.

+0

die Präprozessor-Methode zum Finden von Header-Dateien ist wirklich nützlich, danke! Ich frage mich nur, ob "cpp" und "gcc -E ..." ist das gleiche? – Pwn

+0

"cpp" auf einem Linux-System ruft im Allgemeinen g ++ auf, was nicht dasselbe wie gcc ist. – gnud

+1

Ich denke, dass das Suffix _t von POSIX für zukünftige Erweiterungen reserviert ist. Wenn das wirklich so ist, ist es generell keine gute Idee, _t als Suffix für benutzerdefinierte Typen zu verwenden. – Inshallah

0

Ich habe gerade eine Google-Suche mit "c size_t" durchgeführt, die this erste Verknüpfung ergab. time_t Informationen sind auch auf dieser Seite. Sobald Sie diese Informationen erhalten, ist es ein kleiner Schritt zu erkennen, dass key_t dem gleichen Muster folgen muss.

Verwandte Themen