gpt4 book ai didi

c - 隐式转换中的溢出问题?

转载 作者:行者123 更新时间:2023-11-30 20:58:30 26 4
gpt4 key购买 nike

在我的机器中,整数数据类型的大小为 4 个字节,因此在有符号 int 的情况下,正数的最大值为 2147483647,负数的最大值为 -2147483648。考虑下面的 C 程序

#include<stdio.h>

int main(void)
{
int a = 2147483648;
int b = -2147483649;

printf("%d",a);
printf("\n%d",b);



return 0;
}

输出:-21474836472147483647

为什么 a 隐式转换为 -2147483648 而 b 隐式转换为 2147483647?以及为什么我只在第 2 行收到下面给出的警告

“隐式常量转换中的溢出(-woverflow)”

最佳答案

您想要的警告在 GCC 中由 -pedantic 启用。在“代码块”中,转到“设置”、“编译器”并找到“启用严格 ISO C 要求的警告”。打开它。

关于c - 隐式转换中的溢出问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52286086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com