how can a function take variable argument in C, as printf?