PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Pointer Zuweisung



crowdy
08.06.2011, 17:31
Hi,

ich hab da mal wieder ein Problem... bzw. der Compiler hat eins. Und zwar wollte ich mal probieren in meinem Programm mit Pointern zu arbeiten. Einstieg dafür bot mir diese Seite http://openbook.galileocomputing.de/c_von_a_bis_z/012_c_zeiger_001.htm#mjee28a882ef9125d2c4cc49121b2 c65c1 (http://openbook.galileocomputing.de/c_von_a_bis_z/012_c_zeiger_001.htm#mjee28a882ef9125d2c4cc49121b2 c65c1)

Das Programm sieht in etwa so aus...


volatile uint8_t blk_lgt;
uint8_t *volatile ptr = NULL;

...
ptr = &blk_lgt;
...
Und ergibt diese Warnmeldung für die obige Zeile...


warning: assignment discards qualifiers from pointer target typeWas bedeutet diese Warnmeldung? Ich kann damit überhaupt nichts anfangen. Bei anderen Programmen hatte ich den &Operator schon verwendet, dort hat der Compiler auch gemeckert, aber das Programm lief immerhin. Jetzt meckert er weiter, aber dieses Programm läuft nicht und ich kann das Problem nicht so recht einkreisen...

Ich bin über jeden Tipp, Anregung oder Kritik sehr dankbar

radbruch
08.06.2011, 17:57
Ich habe keine Ahnung was du da machst, aber so kann ich es fehler- und warnungsfrei übersetzen:

volatile uint8_t *ptr = NULL;

crowdy
08.06.2011, 18:24
Hi,
das geht zwar allerdings bedeutet das, dass nicht ptr volatile ist sondern die Variable auf die ptr zeigt. Leider muss in meinem Fall ptr volatile sein... Aber vielen Dank für die Antwort

sternst
08.06.2011, 19:31
Was bedeutet diese Warnmeldung?Dass bei der Zuweisung ein "Qualifier" (hier "volatile") verloren geht.
Wie du ja selbst sagst, bei ptr ist der Pointer selber volatile aber nicht das Ziel, also geht bei der Zuweisung das volatile von blk_lgt verloren.


volatile uint8_t *volatile ptr = NULL;

crowdy
09.06.2011, 12:58
ahhhh, das ist also mit Qualifier gemeint...
Super vielen Dank für die hilfreiche und schnelle Antwort!