私はこのように定義されたNode型の単独リンクリストを持っている:「日付」は形をとるだろうフィールドですC++ 11 QtCreator:長整数が正しくに読み込まれていない変数
struct Item {
long date;
bool isPaid;
};
struct Node{
Item item;
Node* next;
};
"ddmmaaaa"(つまり、その日の最初の2桁、2番目の2桁の数字、最後の4桁の数字)。私はいくつかのノードを追加しようとすると、 はしかし、私は、挿入された別の番号を取得する:
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'で切り取らない場合は、指定したサイズの移植可能な型を使う必要があります。 –