作者descent (「雄辩是银,沉默是金」)
看板C_and_CPP
标题Re: [问题] 关於Class指标的观念
时间Fri Jun 1 18:19:08 2018
有了 cfront 之後, 可以看到 member function pointer 是怎麽实作的。
void (A::*mf)() = 0;
printf("sizeof(mf): %u\n", sizeof(mf));
这个程式码被转成
typedef int (*__vptp)(void);
struct __mptr {short d; short i; __vptp f; };
struct __mptr __1mf ;
printf ( (const char *)"sizeof(mf): %u\n", sizeof __1mf ) ;
所以这就是为什麽这个指标印出来的大小是 16 (64bit 机器), 而不是 8。
cfront 可以为我们揭露大多数 c++ 实作的秘密。
--
纸上得来终觉浅,绝知此事要躬行。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.218.53.138
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1527848357.A.F1E.html
※ 编辑: descent (61.218.53.138), 06/01/2018 18:19:34
1F:推 bigbite: 推 06/02 13:13