Diskussion:C-Programmierung mit AVR-GCC/ Datentypen

Aus Wikibooks
Zur Navigation springen Zur Suche springen

"Alias"[Bearbeiten]

Das mit dem "Alias" und der Erklärung dazu sollte so nicht stehen bleiben, denn es ist schlicht falsch. Die in der Spalte "Alias" angeführten Typbezeichner sind mitnichten auf feste Längen festgelegt, sondern ihre Länge ist definitionsgemäß (sämtlich C-Spezifikationen) vom Prozessor bzw der Architektur abhängig, für die der Compiler Maschinen-Code erstellt. Das heißt, jeder Compiler ist frei darin, was für Bitlängen er für diese Typen annimmt. Gerade darum gibts ja auch seit C99 den Header stdint.h. Käptn Weltall 13:01, 4. Mär. 2014 (CET)

Ist m.E. in der Tat ein wenig irreführend formuliert.

Fakt ist natürlich, dass es hier nicht um jeden x-beliebigen C-Compiler geht. Nicht umsonst heißt das ganze Buch C-Programmierung mit AVR-GCC und für diesen ist nicht nur genau festgelegt wie welche Datentypen in Bits zerschossen im Speicher landen. Insbesondere wenn es darum geht Platz zu sparen und Rechenzeit zu minimieren (die AVR Microcontroller arbeiten lediglich mit 8-bit ALU, d.h. bereits einfachste Rechenoperationen müssen bei entsprechender Größe der Operanden in eine entsprechende Serie von Maschinenbefehlen umgesetzt werden!!) kann es sogar von erheblicher Bedeutung wie genau die einzelnen Datentypen umgesetzt werden.

Aber ich gebe Dir voll und ganz recht - auch mir das scheint das aus dem Text des Kapitels so nicht recht hervor zu gehen. Wohin die ganzen leeren Abschnitte irgendwann einmal führen sollten ist mir obendrein ein rechtes Rätsel.

Ganz weglassen würde ich Angaben zu den elementaren Datentypen aus oben genannten Gründen nur ungern. Mein Vorschlag den Karren aus dem Dreck zu ziehen wäre folgender:

Mit Verweis auf das Kapitel Datentypen im Wikibook C-Programmierung auf ein Großteil bisher ohnehin leer gebliebener Abschnitte verzichten.

M.E. stehen sie in diesem Buch ohnehin ein wenig unmotiviert da. Besteht die Zielgruppe laut Projektbeschreibung doch aus "Leuten mit Programmiererfahrung in C, die in die Microcontroller-Programmierung einsteigen wollen." Man sollte also eigentlich davon ausgehen können, dass die Leser mit der Materie bereits vertraut sind.

Stattdessen bereits im Einleitungstext, den es bisher ja ohnehin noch gar nicht gibt darauf Hinweisen, dass hier nicht noch einmal C-Lehrbuch oder C-Standard für ein Publikum herunter gekaut werden soll, dass den Inhalt ohnehin schon kennt. Sondern dass es viel mehr um die Besonderheiten im Umgang mit dem avr-gcc Compiler im speziellen geht. Sprich genau um jenen Teil "Implementation Defined Behavior", über den sich in keinem Standard etwas finden lässt.

Dabei übrigens nicht vergessen zu erwähnen, dass der Datentyp double nicht C-Standard konform lediglich über 32-bit verfügt.

Und dass der Compiler Schalter -mint8 tunlichst vermieden werden sollte, da er nicht nur jeden Datentyp bis hinauf zu int auf 8-bit Länge verkürzt! sondern weil er auch nicht mit der AVR-Libc verträglich ist.

Wenn der Vorschlag keine wilden Proteststürme hervorruft, werde ich mich die Tage in beschriebener Art und Weise Mal an eine Überarbeitung des Kapitels machen.

--Mikyra 02:29, 3. Jan. 2017 (CET)

Nächstes Mal ändert das doch bitte gleich, zumindest vorläufig, stattdessen stand da jetzt fünf Jahre lang irreführendes Zeug :) --Dingens5 17:34, 19. Nov. 2018 (CET)