Unknown schrieb:
> Peter Dannegger schrieb:
>> Unknown schrieb:
>>> hab hier einen Ausschnitt aus einem Code
>>
>> Ausschnitte sind immer ne ganz schlechte Idee.
>> Laß die Deppen vom Forum doch ruhig raten, wozu das sein könnte, die
>> haben ja sonst nichts besseres zu tun.
>
>
> dass hier immer gleich schwache Kommentare kommen..
> Es ging hier nur zum Verstehen der Syntax, da ist der gezeigte Code
> vollkommen ausreichend.
Dann muss ich dir attestieren, dass du ein C-Buch brauchst, wenn du
einen Cast nicht erkennst, wenn du einen siehst.
Mehr lässt sich dann aus dieser Fragestellung nicht ableiten.
Syntax ist eine Sache. Aber Syntax ist nicht alles. Denn die
tieferliegende Frage nach dem "Warum?" oder dem "Was wird bezweckt"
lässt sich nicht beantworten.
Du fragst ja selber
> aber wieso ist dieser Typecast nötig?
der Cast wurde höchst wahrscheinlich eingeführt, um die Warnung vom
Compiler zu unterdrücken, dass hier ein volatile implizit verloren geht.
Durch den Cast sagt der Programmierer dem Compiler "Halts Maul"
Die eigentliche Frage ist aber: War das eine gute Idee? Wer von den
beiden hat eigentlich recht? Der Programmierer oder der Compiler? Ist
das wegcasten des volatile eine gute und harmlose Idee, oder hatte der
Compiler recht, als er die Warnung ausgesprochen hat?
Ohne verwendenden Code lässt sich das nicht entscheiden. Im Zweifelsfall
plädiere ich für "Der Compiler hatte recht und der Programmierer wird zu
5 Stunden debuggen ohne Bewährung bei verschärften Optimizerbedingungen
verurteilt".
Das wegcasten von 'const' oder 'volatile' ist selten eine gute Idee.
Compiler warnen nicht ohne Grund vor derartigen impliziten Operationen.
Dann gibt es eben 2 Möglichkeiten. Entweder man stellt den Compiler mit
einem explizitem Cast und einem "Kusch, ich bin der Herr im Haus" ruhig.
Oder die Sache ist schwerwiegender und ein paar Datentypen müssen
angepasst werden.