Kristian wrote:
> Was muss ich den eingeben, wenn ich z.B. einen 10Bit Wandler brauchen
> möchte???
Falsche Frage.
Richtige Frage:
Welchen Datentyp muss deine read_adc() Funktion liefern?
Nach diesem Datentyp bestimmt sich dann das Formatzeichen,
welches im printf benutzt werden muss.
Hintergrund: Im Aufruf der printf Funktion steht erst mal
ein arithmetischer Ausdruck. Ob dieser Ausdruck nun
0
oder
a ( a sei eine int Variable )
oder
a + 4
oder
function() (function sei eine Funktion die einen int liefert)
oder
a + function()
oder
a + function() + 5
oder
....
lautet, ist erst mal dem printf völlig egal. Da steht ein
arithmetischer Ausdruck und wenn dieser Ausdruck ausgewertet
wird, dann entsteht daraus eine ganze Zahl mit Vorzeichen
(eben ein int). Bei einem int lautet aber das Formatierzeichen
auf %d.
Hast du aber eine ganze Zahl mit 16 Bit ohne Vorzeichen, dann
lautet das Formatierzeichen auf %u
Die Frage lautet daher nicht: Was muss read_adc liefern, damit ein
%d das richtige ausgibt.
Die Frage lautet umgekehrt: Was habe ich in meiner Argumentliste
und wie muss daher das zugehörige Formatierzeichen im Formatierstring
aussehen.