Wer hat UINT16 u.ä. definiert?

Gast #457114
Lesenswert?

Hallo Forum,

manche Programmierer verwenden z.B. statt "unsigned int" einfach UINT16, 
um vom Prozessorkern (8-Bit, 16-Bit, Warsteiner) unabhängig zu sein.
Solche und ähnliche Regeln finde ich sehr sinnvoll und würde mich gerne 
weiter damit beschäftigen.

Weiß jemand von euch, wer das erfunden / definiert hat und wo man noch 
weitere sinnvolle Hinweise zum Programmierstiel findet?

Viele Grüße und danke im Voraus,
Bernhard
#457117
Lesenswert?

UINT16 war früher mal sehr beliebt.
Das Problem war, dass jeder sein eigenes Süppchen
gekocht hat und neue Begriffe eingeführt hat.

Mittlerweile hat sich die Situation aber geändert.
Auch das C-Normungskommitee hat ein Einsehen und
hat einen Standard dafür definiert.

Die entsprechenden Bezeichnungen findest du in
stdint.h

zb. gibt es

  int8_t
  uint8_t
  int16_t
  uint16_t
  ...

Gast #457118
Lesenswert?

> ...Programmierstiel...
Ist das sowas wie ein Besenstiel, nur fürs Programmieren? Vielleicht um 
den Speicher leerzufegen?

UINT16 hat möglicherweise irgendein Programmierer, der von Standards 
nichts hält definiert. In C99 gibt es in der stdint.h-Bibliothek eine 
Reihe von (im ANSI-C99-Standard definierten, also von einer 
Normkommission abgesegneten) Typen wie uint8_t, uint16_t... Diese Typen 
muss jeder C-Compiler, der von sich sagen können will, dass er den 
ANSI-C99-Standard erfüllt, mit sich bringen. UINT16 entspricht nicht 
diesem Standard und führt mit Sicherheit nicht zu einer 
Plattformunabhängigkeit, sondern nur zur Verärgerung des Programmierers.
Gast #457125
Lesenswert?

> Warum nicht selber machen?

WEIL ES DAFÜR SEIT FAST 7 JAHREN EINEN STANDART GIBT!!!

  #include <stdint.h>

  int8_t bla;
  uint8_t blub;

  int16_t foo;
  uint16_t bar;

  int32_t huch;
  uint32_t hach;

  int64_t och;
  uint64_t ach;
Gast #457130
Lesenswert?

@ kbucheg, johnny.m
Vielen Dank für die Informationen, jetzt verstehe ich schon mehr; werde 
ich natürlich in Zukunft so verwenden.
Gibt es noch weitere solcher Normen, z.B. Nomenklatur von Variablen mit 
Speicherklasse?
Außerdem würden mich Tipps zur objektbasierten Programmierung sehr 
interessieren.

@ Carsten Steiner
Danke für den Tipp, so mache ich das bisher. Nur möchte ich eben keine 
eigene Suppe kochen, sondern eine evtl. vorhandene Normung gerne 
übernehmen, deshalb frage ich "wer".
Gast #457285
Lesenswert?

"Gibt es noch weitere solcher Normen, z.B. Nomenklatur von Variablen mit
Speicherklasse?
Außerdem würden mich Tipps zur objektbasierten Programmierung sehr
interessieren."

Interessantes Thema. Soweit ich weiß, wird das nur innerhalb von Firmen 
festgelegt.
Gast #457351
Lesenswert?

die Programmiersprache 'C' gibt es nur schon länger als seit 1999 und es 
war und ist auch üblich eigenen typedefs Namen in Grossbuchstaben zu 
geben, da war ein UINT16 also mal logischer. Aber solche Diskussionen 
werden schnell zu religiösen Glaubensfragen.
Wenn Pakete wie WinAVR oder WinARM für den Start vorliegen dann sind die 
darin enthaltenen Beispiele ein gutes Muster.
#457509
Lesenswert?

Das schöne an Standards ist, dann man sich nicht drann halten muss, 
siehe z.B. gcc oder IAR - beide unterstützen C99 nur teilweise. 
Ausserdem sagt ISO/IEC 9899:1999 + TC2:
7.18.1.1 Exact-width integer types
...
3 These types are optional.

Sie sollten implementiert sein, wenn die Maschine einen entsprechenden 
N-bit Typen bietet, für den Standard notwendig ist es jedoch nicht.

Zwar sollte jeder moderne Compiler diese Typen aufweisen, am Ende muss 
man aber doch sicherstellen, dass C99 und die optionalen Typen verfügbar 
sind.

Gruss,

Dominic
Gast #458356
Lesenswert?

<span class="quoting-level-1">&gt; Gibt es noch weitere solcher Normen, 
z.B. Nomenklatur von Variablen mit
Speicherklasse?</span>

@Bernhard:
Im Prinzip legt jede groessere Firma solche Standards verbindlich fuer 
die eigene Entwicklung fest (an die sich die Entwickler auch manchmal 
halten...). Rel. beliebt ist hier die 'Ungarische Notation', die von 
vielen Firmen (Teile von M$) mehr oder weniger mod. angewandt wird.
Gast #458485
Lesenswert?

@Matti

Vielen Dank für deinen Tipp, die Ungarische Notation gefällt mir sehr 
gut. Was du mit "(Teile von M$)" meinst weiß ich zwar nicht, aber es 
klingt sehr gut anwendbar.

Viele Grüße,
Bernhard
Gast #458755
Lesenswert?

@ Dominic R.
Daran habe ich noch gar nicht gedacht, die GNUler haben ja viel 
Erfahrung mit Standardisierung/Teamwork. Zwar ist davon vieles sehr 
allgemein gehalten, aber eine schöne Wochenendlektüre. Danke für den 
Link.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren