摘要: 看《Thinking in C++》的时候有下面一段代码:作者说sizeof(A)很容易理解,但是sizeof(B)不是0有些不正常。他解释到这是因为C++不允许两个object的内存地址是一样的,如果sizeof(B) = 0,那么两个连续的struct B的变量的定义,就会导致这两个变量的地址一样。而我在想的却是另外一个问题:struct B的大小不应该是4吗?它应该要存函数f()的地址啊。但结果却是1。这个1只是为了让变量的地址有所区别吧。google了一下之后,发现我的想法只是我的一厢情愿。1. 函数f()的代码是在代码段的某个位置;2. 因为f()对于多个struct B变量是公共的 阅读全文
posted @ 2011-01-16 19:41 冰封的水 阅读(598) 评论(0) 推荐(1) 编辑