Warning mit Zeiger und Variablen

Gast #2109630
Lesenswert?

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

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

3
void test2(unsigned t1, unsigned char *t2) 
4
{
5
  
6
}
7

8
void test(unsigned char t1, unsigned char *t2) 
9
{
10
  test2(t1, &t2);
11
}
12

13
int main(void)
14
{
15
  unsigned char i = 0;
16
  unsigned char t = 123;
17
  
18
    while(1)
19
    {
20
        test(t, &i);
21
    }
22
}
Gast #2109635
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.
1
void test(unsigned char t1, unsigned char *t2) 
2
{
3
  test2(t1, t2);
4
}

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren