Fragen zu verschiedenen Datentypen



  • Was ist genau size_t und wann sollte man ihn verwenden? Ich meine mal gehört zu haben, size_t ist die unsigned Wort-Grösse auf der jeweiligen Architektur, ssize_t das gleiche als signed?

    Mir ist auf aufgefallen das es unter POSIX für nahezu alles eigene Datentypen gibt.
    pid_t -> Prozess-Id
    uid_t -> UID
    gid_t -> GID
    dev_t -> Device
    usw.

    Warum wurden dafür eigene Datentypen eingebaut, handelt es sich nicht meistens um einfache int's? Ich finde das und viele andere Systemfunktionen machen irgendwie die C++ Programmierung unter Unix ein wenig hässlich, da dort einfach alles so extrem "C" lastig ist. 😞



  • Unix-Leon schrieb:

    Was ist genau size_t und wann sollte man ihn verwenden? Ich meine mal gehört zu haben, size_t ist die unsigned Wort-Grösse auf der jeweiligen Architektur, ssize_t das gleiche als signed?

    size_t ist ein vorzeichenloser Ganzzahltyp, der groß genug ist, um alle möglichen Array-Größenwerte und -Indizes aufzunehmen. Wie groß der ist, hängt vom System ab.
    (ssize_t gibt es übrigens nicht im ANSI Standard, aber ptrdiff_t (groß genug, um beliebige Pointer-Differenzen aufzunehmen))

    Mir ist auf aufgefallen das es unter POSIX für nahezu alles eigene Datentypen gibt.
    pid_t -> Prozess-Id
    uid_t -> UID
    gid_t -> GID
    dev_t -> Device
    usw.

    Warum wurden dafür eigene Datentypen eingebaut, handelt es sich nicht meistens um einfache int's?

    Da hängt es auch von der Architektur ab, was hinter einem pid_t oder dev_t steckt (du als Nutzer mußt nur wissen, daß die Variablen einen Prozess oder ein Device ansprechen können).


Anmelden zum Antworten