Gast
#411909
Hallo,
Ich verwende VMLAB, WINAVR mit avr-libc 1.4.3
In meinem C-Programm gibt es mehrere Arrays (ausserhalb jeder Funktion
deklariert/definiert):
volatile char anzbuffer[6];
volatile uint8_t dg_stat [3];
volatile uint8_t ebuffer [32];
const char modus_text[15][19]={"Anzeige","Einstellen" (... usw.) };
const char chan_text[23][11]={... }; //ähnlich wie modus_text
Der Aufruf einer Funktion
disp_frame_B_ls(ebuffer, modus_text, chan_text, anzbuffer);
erzeugt Warnungen:
a) ... passing arg1 of 'disp_frame_B_ls' discards qualifiers from
pointer target
b) ... passing arg2 of 'disp_frame_B_ls' from incompatible pointer
type
c) ... passing arg3 of 'disp_frame_B_ls' from incompatible pointer
type
d) ... passing arg4 of 'disp_frame_B_ls' discards qualifiers from
pointer target
Ändere ich den Aufruf in
disp_frame_B_ls((uint8_t*)ebuffer, (char*)modus_text, char*)chan_text,
(uint8_t*)anzbuffer);
entfallen Warnungen a) und d).
Meine Fragen:
1. Was bedeutet 'discards qualifiers' in diesem Kontext?
2. Die Zeiger weisen doch auf den richtigen Typ. Was ist falsch am
ersten Funktionsaufruf?
Meine 'Bücherei' zu C hilft mir hier auch nicht weiter.
Daher: Für Hinweise bin ich sehr dankbar.
Wolfgang