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