From 4d27def35edf462bdf0def0cf9f9c7e83f8e14d1 Mon Sep 17 00:00:00 2001 From: Imbus <> Date: Mon, 18 Aug 2025 14:38:01 +0200 Subject: [PATCH] Va_args --- va_args/Makefile | 14 ++++++++++++++ va_args/main.c | 21 +++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 va_args/Makefile create mode 100644 va_args/main.c diff --git a/va_args/Makefile b/va_args/Makefile new file mode 100644 index 0000000..d246f81 --- /dev/null +++ b/va_args/Makefile @@ -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) diff --git a/va_args/main.c b/va_args/main.c new file mode 100644 index 0000000..3e50936 --- /dev/null +++ b/va_args/main.c @@ -0,0 +1,21 @@ +#include +#include + +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; +}