Va_args
This commit is contained in:
parent
b07255ab1d
commit
4d27def35e
2 changed files with 35 additions and 0 deletions
14
va_args/Makefile
Normal file
14
va_args/Makefile
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
CC = gcc
|
||||
CFLAGS = -Wall -O2
|
||||
|
||||
TARGET = main.elf
|
||||
SRC = main.c
|
||||
|
||||
#LDFLAGS =
|
||||
|
||||
$(TARGET): $(SRC)
|
||||
@echo CC $@
|
||||
@$(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
||||
|
||||
clean:
|
||||
rm -f $(TARGET)
|
||||
21
va_args/main.c
Normal file
21
va_args/main.c
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
|
||||
int sum(int count, ...) {
|
||||
int total = 0;
|
||||
va_list args;
|
||||
va_start(args, count);
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
total += va_arg(args, int);
|
||||
}
|
||||
|
||||
va_end(args);
|
||||
return total;
|
||||
}
|
||||
|
||||
int main() {
|
||||
printf("Sum: %d\n", sum(4, 1, 2, 3, 4));
|
||||
printf("Sum: %d\n", sum(2, 100, 200));
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue