#include <stdio.h>
#include <string.h>
int main(void) {
char buf[256] = {};
unsigned long i=13835058055298940928;
snprintf(buf, 1024, "%lx", i); /* Line 7 */
printf("%s\n",buf);
return 0;
}
在第 7 行,如果我使用%lux
, thensnprintf
不做任何转换。它只是打印0x13835058055298940928x
,而如果我使用 just %lx
,它会打印预期的十六进制转换。
如何以十六进制表示 unsigned long?