作者noblebell (高貴的鈴)
看板EE_DSnP
標題[問題] BddNode.cpp中,BddNode的constructor
時間Sat Jan 16 15:41:28 2010
小弟在之前的code發現一個問題,不知是不是自己想太多....
45 BddNode::BddNode(BddNodeInt* n, BDD_EDGE_FLAG f)
46 {
47 assert(n != 0);
48 // TODO
49 XXXXXX
50 XXXXXX
51 }
// Need to check if n._nodeV != 0
54 BddNode::BddNode(size_t v) : _nodeV(v)
55 {
56 // TODO
57 XXXXXX
58 XXXXXX
59
60 }
61
62 // Need to check if _nodeV != 0
63 BddNode::~BddNode()
64 {
65 // TODO
66 XXXXX
67 XXXXX
68 XXXXX
69 }
在這一系列的BddNode constructor中,第一個constructor要檢查BddNodeInt* n
是不是0,蠻合理的說....
後面的二個BddNode constructor的comment只要求檢查_nodeV != 0
可是我們知道_nodeV的最後二個bit是存BddNodeInt的phase,除最後二個bit外的bit,
都用來存BddNode的BddNodeInt*。因此,如果
_nodeV == 000~0001
這樣的情況下,只檢查 _nodeV != 0 會不會有些小問題發生??
先謝謝大家的回答囉~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.251.6
1F:→ a3785lexx:不會吧,你也不會想要把0位置給加bubble啊XD 01/16 16:44
2F:推 ric2k1:嗯, 問 & 回答的好, _zero 與 0 是不一樣的 01/16 19:55
3F:→ noblebell:soga~ 01/18 08:11