/*
See this:
https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/
*/
#include <stdio.h> /* printf */
/*-9,223,372,036,854,775,808*/
char *commatize(long long number);
int main(void)
{
long long nums[] = {
0, 1, 12, 123, 1234, 12345, 123456, 1234567, 12345678,
123456789, 1234567890, 12345678901, 123456789012,
1234567890123, 12345678901234, 123456789012345,
1234567890123456, 12345678901234567, 123456789012345678,
1234567890123456789, 9223372036854775807,
-0, -1, -12, -123, -1234, -12345, -123456, -1234567, -12345678,
-123456789, -1234567890, -12345678901, -123456789012,
-1234567890123, -12345678901234, -123456789012345,
-1234567890123456, -12345678901234567, -123456789012345678,
-1234567890123456789, -9223372036854775807
};
int size = sizeof(nums) / sizeof(*nums);
int i;
for (i = 0; i < size; i++)
/* Need this to print 64-bit ints on Windows with MinGW */
#ifdef __MINGW64__
__mingw_printf("%20lli|%26s|\n", nums[i], commatize(nums[i]));
#else
printf("%20lli|%26s|\n", nums[i], commatize(nums[i]));
#endif
return 0;
}