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'不會削減它,你需要使用一個給定大小的可移植類型。 –