Forum: Mikrocontroller und Digitale Elektronik Wofür steht eigentlich _t bei den C99 Standard Integer Typen


von Bit Bastler (Gast)


Lesenswert?

Hallo

nicht unbedingt relevant für die Praxis, aber trotzdem würde es mich 
interessieren:

Wofür steht eigentlich das _t bei den C99 Standard Interger-Typen mit 
fester Breite?

Also wie z.B.

int8_t  int steht für Integer also eine Ganzzahl, 8 ist die Bit Anzahl 
(Breite, Größe) aber für was steht der Unterstrich (Wohl nur eine 
Abgrenzung um Leerzeichen zu vermeiden?) aber zu den t habe ich 
keinerlei Idee.

Bit Bastler

von Yalu X. (yalu) (Moderator)


Lesenswert?

type

von pitschu (Gast)


Lesenswert?

Üblicherweise bedeutet das _t, dass es sich hier um einen per typedef 
definierten Datentypen handelt.

von Theor (Gast)


Lesenswert?

Steht das nicht im Standard? Ich bin zu faul nach zu schauen.

Vermutlich wird das 't' für "Type" stehen.

von W.S. (Gast)


Lesenswert?

Bit Bastler schrieb:
> Wofür steht eigentlich das _t

Es ist zum Verwirren von Außenstehenden gedacht.

Früher hatten sich viele Leute ihre eigen Nomenklatur gemacht wie z.B. 
U32, U16, U8 und so, aber das war den Erfindern von uint8_t denn doch zu 
kurz und möglicherweise zu prägnant.

Also deshalb.

Ansonsten: Es ist ja immer nur eine Umbenennung der eigentlichen 
Basistypen in einer Headerdatei. Wem das nicht zusagt, der schreibt sich 
andere Benennungen und gut isses.

W.S.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

W.S. schrieb:
> Es ist zum Verwirren von Außenstehenden gedacht.

Ganz sicher. Deswegen wird die Notation auch bei size_t und time_t 
verwendet, alles nur, um Außenstehende zu verwirren. C ist überhaupt nur 
erfunden worden, um Leute zu verwirren. Wer behauptet, damit arbeiten zu 
können, ist einfach kein richtiger Außenstehender.

> Früher hatten sich viele Leute ihre eigen Nomenklatur gemacht wie z.B.
> U32, U16, U8 und so, aber das war den Erfindern von uint8_t denn doch zu
> kurz und möglicherweise zu prägnant.

Es ist ja auch viel vorteilhafter, wenn jeder seine eigenen Datentypen 
verwendet, als auf etwas allgemein standardisiertes zuzugreifen. So wird 
auch das Lesen anderer Leute Quelltexte viel unterhaltsamer.

Das ist klar, logisch und konsequent.

Leute, die keine richtigen Außenstehenden sind, sehen sich den 
Standard an, und entnehmen dem folgendes:
1
B.2.12 Data Types
2
3
The requirement that additional types defined in this section end
4
in ‘‘_t’’ was prompted by the problem of name space pollution. 
5
It is difficult to define a type (where that type is not one defined 
6
by IEEE Std 1003.1-2001) in one header file and use it in another 
7
without adding symbols to the name space of the program. 
8
To allow implementors to provide their own types, all conforming 
9
applications are required to avoid symbols ending in ‘‘_t’’, which 
10
permits the implementor to provide additional types. 
11
Because a major use of types is in the definition of structure members, 
12
which can (and in many cases must) be added to the structures defined 
13
in IEEE Std 1003.1-2001, the need for additional types is compelling.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.