SkydiverBS
Tripel-As
Hm, zu den typedefs ansich: wie ist das auf Plattformen wo ein char 7bit hat?
Gibts da dann kein "u08" sondern ein "u07"? (Wäre ja das einzig Sinnvolle.)
Ich meine Linux wird ja afaik auch viel im embedded-Bereich eingesetzt, also ist die Frage wohl nicht so weit vom Schuss.
[...]
Naja, wohl Geschmackssache. Solange ein u16 wirklich 16bit lang ist, find ichs zumindest teilweise sinnvoll. Wenn das aber nicht gewährleistet ist (kA ob das so ist, siehe vorherige Frage), würde ichs generell ablehnen.
Diese Kernel-Datentypen (u8, u16, u32, u64) sind nicht als Ersatz für die Standard-Datentypen gedacht, sondern eher um eine Variable mit einer definierten Größe zu erzeugen. Deswegen stellt sich gar nicht die Frage, ob es für ein char mit 7 Bit einen Typ u7 gibt. Man kann weiterhin den Typ char benutzen, muss sich aber damit abfinden, dass ein char auf unterschiedlichen Plattformen unterschiedlich groß ist. Wenn man einer Variable genau ein Byte zuweisen möchte, egal auf welcher Plattform, nimmt man stattdessen u8. Die Kernel-Datentypen sind im Buch Linux Device Drivers sehr gut beschrieben.
Bei der Entwicklung von Anwendungen, die mit dem Kernel nichts zu tun haben, macht die Benutzung der Kernel-Datentypen IMHO aber keinen Sinn, da man in der Regel keine Variable fester Größe benötigt und die Lesbarkeit des Codes darunter leidet.
Gruß,
Philip