Hallo Leute, ich habe ein Problem mit einem meiner Programme, und zwar möchte ich gerne optimale Parameter übergeben, und das klappt auch fast, aber der erste Parameter ist irgendwie immer 0... Hier mal eben mein code:
1 | #include <main.h> |
2 | #include <avr/io.h> |
3 | #include <conf/controller.h> |
4 | #if uart == 1
|
5 | #include <includes/uart.c> |
6 | #endif
|
7 | #include <stdarg.h> |
8 | |
9 | |
10 | int printargs(int n, ...) |
11 | {
|
12 | va_list ap; |
13 | int i = 0; |
14 | |
15 | va_start(ap, n); |
16 | for (; n; n--) |
17 | i += va_arg(ap, int); |
18 | va_end(ap); |
19 | uart_send_char('\n'); |
20 | uart_send_char('\r'); |
21 | return i; |
22 | }
|
23 | |
24 | |
25 | int main(void) |
26 | {
|
27 | uart_init(); |
28 | uart_send_var((char) printargs(5, 2, 14, 15, 24, 48, 0)); |
29 | uart_send_var((char) printargs(2, 3, 4)); |
30 | uart_send_var((char) printargs(0)); |
31 | uart_send_var((char)printargs(1, 0)); |
32 | return 0; |
33 | }
|
Meiner Meinung nach müsste die Ausgabe so aussehen:
1 | 108 |
2 | 9 |
3 | 0 |
4 | 1 |
Sie sieht aber so aus:
1 | 103 |
2 | 7 |
3 | 0 |
4 | 0 |
Vielen dank an alle die mir helfen wollen. Grüße Felix