Stdint oder C Datentypen

#2864536
Lesenswert?

Da noch nicht alle Compiler (vor allem Compiler für uCs) C99 
unterstützen, benutze ich auch die neuen "Features" nicht. Ich versuche 
grundsätzlich möglichst speichersparend zu programmieren. Wenn ich 
weiss, dass meine Variable nur Werte zwischen X und Y annehmen kann, so 
wähle ich den Datentyp aus, in der der Wert gerade noch reinpasst. Beim 
PC-Programmieren ist dies jedoch weniger kritisch, da einiges mehr an 
Ressourcen verfügbar ist.

Ob du die C99 "Features" nutzt oder nicht, ist dir überlassen. Sei dir 
einfach bewusst, dass deine Programme mit einem älteren Compiler dann 
nicht funktionieren.
#2865544
Lesenswert?

da das keine "hard coded" Features sind, sondern einfach nur header mit 
Typedefs, ist es nicht schwierig diese nachzurüsten, falls sie fehlen.

Vor allem in Schnittstellen zwischen unterschiedlichen Systemen sind die 
"neuen" Typen Gold wert. Unter Umständen hat ein int auf dem einen 
System eine andere Größe als auf einem anderen.

Eigentlich braucht man bur zu wissen, was man will, dann sollte man 
immer die "neuen" Typen verwenden.

Schnittstellen: feste Typen
Typen, wo mit overflow gerechnet werden muss: feste Typen
lokale automatische Variablen: _fast Typen
interne rechenzeitkritische Strukturen: _fast Typen
interne speicherkritische Strukturen _least Typen
Zeichen u. Strings: char


edit:
bei den Interfaces die Padding Bytes nicht vergessen, also am besten ein 
pragama pack, oder whatever benutzen und die Variablereihenfolge mit 
Verstand wählen.
Gast #2868166
Lesenswert?

Vor allem wenn selbst schon so Sachen wie stdint.h fehlen, das 
einerseits gerade im Embedded-Bereich besonders praktisch ist und 
andererseits geradezu trivial einzubauen ist, da es nicht mal Änderungen 
am Compiler selbst benötigt, dann ist das echt ein Armutszeugnis für den 
Compiler-Hersteller.
Moderator Persönliche Seite #2868204
Lesenswert?

Johann L. schrieb:
> Wenn der Compiler das immer noch nicht kann, dann tritt ihn in die
> Tonne.

Ach was.  Von Microsoft lernen heißt siegen lernen. :-)  Die
ignorieren meines Wissens recht standhaft alle Weiterentwicklungen
von C jenseits von C90.  Wenn Microsoft das kann, dann können andere
das natürlich auch ...

http://www.infoq.com/news/2012/05/vs_c99_support/
#2868250
Lesenswert?

Mit dem gcc komme ich ganz günstig über die Runden :-)

Und den Visual C++ will ich auch nicht mehr bezahlen, seit ich das 
vollkommen untaugliche VS2003 erworben habe. Günstig war das nicht.
Schon gar nicht, wenn in einer "Professional"-Version nicht mal ein 
Profiler dabei ist.
Gast #2868824
Lesenswert?

Vlad Tepesch schrieb:
> Johann L. schrieb:
>> Hallo? C99 gibt's jetzt seit 13 (in Worten: dreizehn) Jahren.
>> Wenn der Compiler das immer noch nicht kann, dann tritt ihn in die
>> Tonne.
>
> Dann bleiben dir aber nicht mehr viele Compiler übrig und die, die übrig
> bleiben, wirst du nicht bezahlen wollen.

Wie viel hast du für den gcc bezahlt? Solange wir hier nicht von irgend 
welchen exotischen Architekturen sprechen, gibt es eigentlich immer 
einen kostenlosen Kompiler mit C99 Unterstützung. Und der gcc ist 
wirklich nicht schlecht, der kann sich sogar mit dem MSVC messen. Clang 
kann sogar C11. Also wo ist das Problem?

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