aufgabe 9 mit eigener (schlechter :)?) aufgabe 8?


hmm, klingt schlau :].

erzeuger.c: In function `main':
erzeuger.c:33: warning: large integer implicitly truncated to unsigned type

kommt aber nach dem kompilieren. anscheinend ist ihm die BUFSIZE von 1024 zu gross fuer ein unsigned char :] - soll man es dann einfach auf die maximalgroesse von 255 (?) setzen?


Hab da halt ne Abfrage, wenn größer, dann 255, ansonsten halt den Wert


nicht fuer die Punkte in der A9, nur wenn man’s schoen machen will


sweet , gute idee,
dafuer bin ich natuerlich zu dumm :].
so mach ichs und gebs dann ab.


Das hab ich gemacht. Trotzdem krieg ich bei der Kompilation die gleiche Fehlermeldung wie Steppenwolf. Anscheinend schaut der Compiler nicht auf die if-Abfrage. Denn wenn ich mein BUFSIZE auf 1024 setz und im Erzeuger

   if (BUFSIZE > 255)
      settings.c_cc[VMIN] = 255;
   else
      settings.c_cc[VMIN] = BUFSIZE;

schreibe, meckert er trotzdem. Wie kann man das Casten bzw. das Problem lösen?! Setz ich BUFSIZE auf 12 funzt alles wunderbar…


Richtig vermutet, es ist zwar der Praeprozessor der das if nicht beachtet und dann dem Compiler was liefert, was dem nicht so ganz schmeckt aber da liegt die Ursache der Fehlermeldung.
ok, nochmal ganz langsam, hier passiert folgendes:

  1. Der gcc faengst an mit dem Praeprozessor, dabei werden alle Sachen die mit #define BLA wertvonbla definiert wurde textuell ersetzt, also wirklich statt BUFSIZE 1024 hingeschrieben, das wird dann dem Compiler uebergeben.
  2. Der Compiler ‚sieht‘ jetzt ein settings.c_cc[VMIN] = 1024 und warnt, dass da eine Fehlermoeglichkeit liegen koennte, so intelligent, dass oben ja dieser Fall ausgeschlossen wird ist der Compiler nicht.

Eine einfache Lsg waer hier das casten, ein Kommentar, warum man den ganzen Spass macht waere hier dann angebracht.


danke bis dahin, aber wie caste ich das bitteschön? Finde nix. (short) allein reicht ihm irgendwie nicht… :motz:

nachtrag: is ja klar… short sind ja 16bit… :*)


eigentlich ist der betreffende teil vom typ cc_t.
wenn du danach googlest, findest du:

typdef unsigned char cc_t.

also nach (unsigned char) casten.


könnte man nicht einfach gleich nach (cc_t) casten?


sehr schlau.
wie gesagt, ich bin zur zeit (oder nicht nur zur zeit?!) nicht auf voller geistiger hoehe…


wer ist das schon

“vergiss die Unterschrift nicht” :wink: