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

Linux News der Woche: Drama unter Entwicklern, Manjaro 24.1, XFCE 4.20 Release steht

Linux-News der Woche: GTA V sperrt Linux-Nutzer aus, Proton 9.0-3

Linux News der Woche: Sicherheitslücke in CUPS, Cosmic-Desktop von System76

Linux News der Woche: Ubuntu 24.10, Space Marine 2 auf Linux, AMDs 3D V-Cache

Linux-News der Woche: Linux-Konsole für Retro Games

Zurück
Oben