5

次のcプログラムをコンパイルしました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;
}

そして、次の警告が表示されます。

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

これらの警告を生成しないC90、文字列から/への64ビット整数を解析/印刷する、標準に準拠した正しい方法は何ですか?

4

2 に答える 2