【发布时间】:2015-07-21 08:54:27
【问题描述】:
我尝试使用%lld 格式说明符打印int64_t 类型的变量,但收到以下警告?
警告:格式“%lld”需要类型“long long int”,但参数 4 有类型'int64_t'
在我看来,在linux下,int64_t总是long long int,那么:
- 为什么会出现此警告?
- 我该如何解决这个问题?
【问题讨论】:
-
在我看来,在linux下,
int64_t总是long long int。实际上,并不能保证总是案例。 -
更重要的是,由于编译器抱怨
printf格式,它很可能不是您平台上的long long,而是long。 -
不要根据意见、偏见、迷信、信仰或同事告诉我的方式进行编程。相反,1)了解规则在哪里,2)学习规则,3)遵守规则。
-
明确一点:在 64 位 Linux 系统上,
int64_t的类型为long int,而不是long long int。