www.mikrocontroller.net

Forum: Compiler & IDEs Warning mit Zeiger und Variablen


Autor: no_know_how (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich habe folgenden Code, der mir die Warning wirft:
passing argument 2 of 'test2' from incompatible pointer type

und wie genau umgehe ich die Warning?
#include <avr/io.h>

void test2(unsigned t1, unsigned char *t2) 
{
  
}

void test(unsigned char t1, unsigned char *t2) 
{
  test2(t1, &t2);
}

int main(void)
{
  unsigned char i = 0;
  unsigned char t = 123;
  
    while(1)
    {
        test(t, &i);
    }
}

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
no_know_how schrieb:
> test2(t1, &t2);

Mach da das & weg. test2 erwartet als zweites Argument einen Pointer 
auf unsigned char, und nicht einen Pointer auf einen Pointer auf 
unsigned char.

Autor: DirkB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
test2() erwartet bei t2 einen Zeiger auf unsigned char.

t2 bei test() ist schon ein Zeiger auf unsigned char.

Daher brauchst du beim Aufruf von test2() in test() den Adressoperator 
nicht.
void test(unsigned char t1, unsigned char *t2) 
{
  test2(t1, t2);
}

In main ist i ein unsigned char (kein Zeiger). Darum brauchst du da das 
&

Autor: no_know_how (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank

macht natürlich sinn :)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.