Los argumentos variables de verificación son del tipo esperado

Actualmente estoy escribiendo una función que tomará un número variable de argumentos. Paso el número de argumentos a la función y luego recorreré la lista de argumentos.

Cada uno de los argumentos pasados debe ser un número entero. Agregaré este entero a un vector de enteros que se usará más adelante.

Me gustaría asegurarme de que algún bromista no intente pasar esta función a otra cosa que no sea un número entero en el futuro. Reconozco que puedo verificar el argumento actual de va_arg para asegurarme de que no sea NULL y puedo usar algo como isanum (va_arg ()) para determinar si es un número entero válido. Supongo que incluso podría verificar el tamaño de (va_arg) y compararlo con el tamaño de (int) y asegurarme de que sean iguales.

¿Hay alguna otra verificación que pueda ejecutar para verificar que se me haya pasado un número entero válido?

Gracias de antemano por la asistencia