Hallo Sternthaler,
Das ist richtig, das Programm wird auch ohne diese Castorgie richtig laufen,Zitat:
- Alle warnings wegen 'signedness' können hier ignoriert werden. Es erfolgt an keiner Stelle eine Nutzung des höchsten Bits. Ist nur Compiler-Overload
- Die warnings wegen 'implicit declaration' können hier ignoriert werden. Bei keiner der Funktionen wird der (angenommene) int-Return-Wert überhaupt benutzt.
das Problem ist ja nur, wenn man die Warnings übersieht/ignoriert ignnoriert man auch richtig böse Warnings, wie 'make pointer from int' oder so.
Das war nicht böse gemeint, genauso wie mit 'Käse'...
Ja Du hast wieder recht PrintuChar() wäre passender gewesen :-)Zitat:
@izaseba
Sollte deine Funktion PrintChar() nicht eher PrintuChar() heißen, dann könnte man noch eine 'echte' PrintChar() mit Vorzeichenausgabe für 'signed char' machen?
Es war eher aus der 'Ecke' 'wie komm ich ohne itoa aus...'
hmmm, wie könnte dann PrintChar() in der einfachsten Form aussehen :-k
Vielleicht so (als erster Gedanke)
Gefällt mir zwar nicht ganz, es ist aber 'der erste Gedanke'Code:void PrintChar(unsigned char x)
{
char ergebnis[] = {' ','0','0','0'};
if (x<0) {
ergebnis[0] = '-';
x * = -1;
}
if (x >=100){
ergebnis[1] = '1';
x -=100;
}
while (x >= 10) {
ergebnis[2]++;
x -=10;
}
ergebnis[3] +=x;
SerWrite(ergebnis,4);
}
Wenn da Interesse bestehen sollte kann ich mir weitere Gedanken drüber machen, sonst lasse ich es einfach
Gruß Sebastian