打印INT的最大值

user007

我尝试int在程序中打印的最大值使用以下代码::

#include <stdio.h>
#include <limits.h>
int main(void) {
    printf("%d",INT_MAX);
    return 0;
}

我得到的输出是: 2147483647

但是,当我更改printfprintf("%lld",INT_MAX);输出的声明时,它变为577732524332023807INT_MAX值应该在的范围内long long int,那么为什么它不能转换INT_MAX成正确的数字long long int

感谢您的任何提前帮助。

卡洛莉·霍瓦斯(Karoly Horvath)

printf 是可变参数函数,它不知道其参数类型,它依赖于在格式字符串中接收正确的提示。

您使用调用了未定义的行为"%lld",因为您尚未传递long long int

要修复它,您需要进行投射-然后您会看到正确的结果:

printf("%lld", (long long int) INT_MAX);

启用编译器警告?:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章