如何可移植地打印int64_t?

时间:2014-11-29 08:15:26

标签: c printf

我使用以下代码打印int64_t:

int64_t a = 100;
printf("%lld\n", a);

然而,它会产生警告。

warning: format '%lld' expects argument of type 'long long int', but argument 2 has type 'int64_t'

所以,我进入stdint.h并找到定义:

# if __WORDSIZE == 64
typedef long int int64_t;
# else
__extension__
typedef long long int int64_t;
# endif

问题是我使用了'%lld'打印一个长期的'在64位系统中。 虽然只是使用'%ld'解决警告,它会导致可移植性问题,因为它不能在32位系统中工作('%ld'占32位)。

是否有任何可移植的方法来打印int64_t?

0 个答案:

没有答案