引用的强制转换带来的隐蔽性极高的BUG

clipboard

对于上面的函数,如果这么调用:

clipboard[1]

clipboard[2]

这里把两个short型变量强制转换成int&引用,导致了一个极为隐蔽的BUG:

m_nUdpPort被当成一个4字节的变量来对待,但是它本身是两个字节的,所以以m_nUdpPort变量的值在被修改时,相邻的两个字节也被修改了,而这相邻的两个字节极有可能是另外一个成员变量的值,所以这个值极有可能在不知情的情况下被修改,导致难以发现的BUG

clipboard[3]

posted @ 2012-08-03 21:51  kcy-666  阅读(340)  评论(0编辑  收藏  举报