The second version is non-portable, which is a strong argument for using the first version.
The second version would only work if on your platform the function's arguments are laid out on the stack in a particular fashion. The use of varargs abstracts that away, which is what makes the first version portable.