首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cpp: eclipse不能识别“long long”类型

问cpp: eclipse不能识别“long long”类型
EN

Stack Overflow用户
提问于 2012-01-26 16:45:24
回答 2查看 1.1K关注 0票数 6

我在我的代码中有一些地方的下一行:长长的maxCPUTime=4294967296;

(最大的long类型可以是4294967296 -1,所以我使用long long)

问题是,当我编译时,我得到了下一个错误:

代码语言:javascript
复制
error: integer constant is too large for ‘long’ type

这就好像,eclips没有意识到我写的是'long long‘,它认为我写的是'long’。

(我使用的是linux操作系统)

有人知道我为什么会得到这个错误吗?

EN

回答 2

Stack Overflow用户

发布于 2012-01-26 16:47:00

向其追加LL:

代码语言:javascript
复制
long long maxCPUTime = 4294967296LL;

这应该可以解决问题。(与ll相比,LL更好用,因为它更容易区分。)

直到C99/C++11,long long才正式加入标准。

通常,整数字面量将具有最小类型来保存它。但是在C99/C++11之前,long long在标准中并不“存在”。(但大多数编译器都将其作为扩展),因此(在某些编译器中)大于long的整型字面值不会获得long long类型。

票数 6
EN

Stack Overflow用户

发布于 2012-01-26 16:49:17

问题是您的常量(4294967296)不适合int和unsigned int (实际上它也不适合long -这就是编译器所说的),并且不会自动升级为long long,因此会出现错误。您必须添加后缀LL (或ll,尽管像我这样使用11的短视人士可能会混淆后者)才能使其成为long long

代码语言:javascript
复制
long long maxCPUTime = 4294967296LL;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9015629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档