I compiled the following c program gcc -ansi -pedantic -Wall test.c :
#include <stdio.h> #include <stdint.h> #define BUFFER 21 int main(int argc, char* argv[]) { uint64_t num = 0x1337C0DE; char str[BUFFER]; /* Safely Holds UINT64_MAX */ if(argc > 1) sscanf(argv[1],"%llu",&num); sprintf(str,"%llu",num); return 0; }
And I get the following warnings:
test.c:8:5: warning: ISO C90 does not support the 'll' gnu_scanf length modifier test.c:9:3: warning: ISO C90 does not support the 'll' gnu_printf length modifier
What is the correct, C90 standard compliant, way to parse / print a 64-bit integer from / to a string,
which does not generate these warnings?
source share