Some implementations seem to have trouble with %llu and formatting perhaps other "large" types -- e.g. Microsoft Windows using the standard CRT. For this reason also consider using the <inttypes.h> header if it is possible. The following should work in any compliant compiler including in MS-Windows

Code:
#include <stdio.h>
#include <inttypes.h>

int main(void)
{
    uint64_t i = 18446744073709551615ul;
    printf("Formatted data:  %" PRIu64 "\n", i );
    if (i&1) printf("is odd");
    return 0;
}