作者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