This is not true. Could be because use unformated fmt char stream, and not promove llu, and pointer is wrong. > typedef unsigned long long int UID; > ... > UID us; > usuario = va_arg (ap, UID); > printf("%llu",us); > segfault This code works if I put "unsigned int" but do not with "unsigned long long int". Should work I think.