风过无痕,生命如烟

每个人生下来都是天使,不过这个世界上也存在着恶魔。恶魔是天使变的,因为这个世界充满了诱惑。

导航

64位整数的编译错误

在用GCC编译下面的代码时出现以下错误:integer constant is too large for 'long' type

unsigned long long m_qtFlags = (m_qtFlags&0xffffffff00000000)|Flags;

 google了一下发现原因如下:unsigned long long是64位整数,而编译器在解析没有后缀的常量时会尝试解析成int,而0xffffffff00000000超过了int的范围,所以会报warning或者error

解决方法:在常量后面加ULL告诉编译器这是一个64位整数

 

posted on 2012-02-16 14:02  hyamw  阅读(362)  评论(0编辑  收藏  举报