Hallo zusammen,
folgende Herausforderung. Man möchte eine va_list-Konstante festlegen
und an vsprintf() weitergeben.
1 | int8u_t X = 222;
|
2 | int16u_t Y = 333;
|
3 |
|
4 | va_list myarglist[] = {&X, &Y};
|
5 |
|
6 | char mystring[10];
|
7 |
|
8 | void myprint (char *s, va_list l)
|
9 | {
|
10 | vsprintf(s, "%d %d", l);
|
11 | }
|
12 |
|
13 | void main (void)
|
14 | {
|
15 | myprint(mystring, myarglist);
|
16 | }
|
Ratet mal, was wird geprintet? Genau, die Adressen von X und Y, nicht
die Werte. Wie kann ich dem Compiler erklären, was ich möchte?
Das Endziel wäre auch, myarglist[] ins Flash zu verschieben (WinAVR und
mega128).