0
我有一个是这样定义的类型节点的单链表:C++ 11 QtCreator:长整型不能正确读入变量
struct Item {
long date;
bool isPaid;
};
struct Node{
Item item;
Node* next;
};
其中“日期”是一个字段,将采取的形式“ddmmaaaa”(即,当天的前两位数字,本月的后两位数字,本年度的最后四位数字)。 然而,当我尝试添加几个节点,我得到插入不同数量:
newItem=new Node;
newItem->item.date=01062016;
newItem->item.isPaid=true;
newItem->next=nullptr;
list=insertItem(list, newItem);
(insertItem是我的函数,它接受一个指向列表头,一个指向一个新的节点,插入节点在列表中)。
我得到正确的号码,如果我尝试类似13042016分配给长字段:
然而,当我尝试分配01062016,我得到287758代替:
我不想使用不同的方法(我知道日期的事情很奇怪,我只是需要这种方式)。我不想使用不同的方法(我知道日期的事情很奇怪,我只是需要它)。只有当我添加一个完全适合长变量的日期时,才能理解为什么我会得到奇怪的数字。 我使用的是基于Qt 5.1.0的Qt Creator 2.7.2。
使用'long'作为一种类型是错误的。如果你知道你需要64位,使用'qint64'或'int64_t'。基本上,如果一个'int'不会削减它,你需要使用一个给定大小的可移植类型。 –