v2 / vlib / v / tests / va_arg_test.v
22 lines · 18 sloc · 334 bytes · 131078128bbc68bf018d08f8a537b6880089ee38
Raw
1module main
2
3@[typedef]
4struct C.va_list {}
5
6fn C.va_start(voidptr, voidptr)
7fn C.va_arg(voidptr, voidptr) voidptr
8fn C.va_end(voidptr)
9
10fn sum(qtd int, ...) int {
11 va := C.va_list{}
12 mut s := 0
13 C.va_start(va, qtd)
14 for i := 0; i < qtd; i++ {
15 s += C.va_arg(int, va)
16 }
17 return s
18}
19
20fn test_main() {
21 assert sum(3, 4, 5, 6) == 15
22}
23