size_t?

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
 
Off Topic

Sorry, für die "etwas" späte Rückantwort...:rolleyes:

Ja, die Info war in einer ziemlich langen Zeile (die ich zum Durchlesen scrollen hätte müssen) versteckt, außerdem in einem (auch noch C++/C99) Comment, da hab ich wohl mental abgeschaltet, sorry.
...die ich zum Durchlesen scrollen hätte müssen... :D
Kein Problem. :)

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.
Danke für die tolle Erklärung...hätte ich nicht besser schreiben können :)

Wobei mir diese Definitionen schon vorher bekannt waren. Also bevor ich mit Linux in Berührung gekommen bin.

u04 als typedef wäre zum Beispiel aber durchaus vorstellbar...es gibt ja auch 4 Bit Architekturen.
Eine andere Frage ist allerdings die: "Gibt es für 4 Bit Architekturen überhaupt einen C Compiler ?"

Höhere Programmiersprachen für 4 Bit Architekturen gibt es ja...zum Beispiel qForth...nur ob es was äquivalentes zu typedef hier gibt...kA...noch nicht verwendet
 

Ähnliche Themen

Kernel Kaltstart / reboot?

Mit bash Skript bestimmte Werte aus Tabelle lesen

Per Samba falsche Angaben zum freien Speicherplatz übertragen

Werte unterschiedlichen Types aufnehmen.

Hilfe bei Interpretation des RAM-Speicherverbrauchs

Zurück
Oben