Code Bye

讨教各位大佬,DEV-C++中有关长整型数的定义和使用问题

在DEV C++中LONG LONG 是个怎么会事啊?
#include<stdio.h>
#include <stdlib.h>
int main()
{long long big,a;
big=2000000000*2;
a=2000000000;
a=a*2;
printf(“a=%I64d big=%I64d”,a,big);
return 0;
}
在DEV C++中运行,输出A和BIG的值怎么不一样?
BIG溢出了!
输出:
a=4000000000 big=-294967296
使用调试工具看了半天,发现参数查看窗口中big一赋值就就溢出了,而经过运算赋值的a却没有
以上例题是本人有定义和使用的问题,百度后发现的一个很能说明本人问题的一个例子,试了很多次也没有搞明白原因,还原因是查看 了很多例子反而对DEV-C++中长整型数的输出产生了疑惑,有的说是用%I64d 输出,有的说是用%llf,还有的说是用%lld,搞的本人都迷糊了
解决方案

10

big=2000000000LL*2;

60

常量也是有类型的,2000000000类型是int,假如要long long 要写成 2000000000LL

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明讨教各位大佬,DEV-C++中有关长整型数的定义和使用问题