class base
{
public:
virtual void func(){printf("call base::func\n");};
};
int main()
{
void(base::*p)() = &base::func;
// 以下在32位机器上, GCC4.4.1 是 8
printf("sizeof( void(base::*p)()) %d\n" , sizeof(p) );
printf(" sizeof(class base) %d\n" , sizeof(class base) );
return 0;
}[/code]
hml1006 于 2011-04-06 11:59:58发表:
指针长度就是机器字长
cuiweixie 于 2011-03-31 01:07:32发表:
还是没人说为什么 。。。。。。。。。。。。。无语。。。。。。。。
vfdff 于 2010-11-14 12:26:26发表:
恩 ,C++ 本来就是兼容C的
troy268 于 2010-11-11 08:28:55发表:
运行得到普通指针的结果,然后相比较一下。
vfdff 于 2010-09-05 01:04:35发表:
普通的当然正常了,不过已经确认这个不正常是编译器的原因,而非CPU原因
pl_014 于 2010-08-22 17:46:28发表:
对于这个问题的不同看法,实际上因为这个程序既有printf又有类,但c语言编译器一定不能认识这样的代码,而c++的标准输出是cout,对吧,但我想这样的代码也是可以被c++编译器和c++连接器所认识的,对吗
alick 于 2010-08-22 15:08:11发表:
7# pl_014
我的意思是,这段程序也不是标准的C++程序。
vfdff 于 2010-08-22 01:35:28发表:
这个是什么语言这么重要吗?感觉大家跑题了
pl_014 于 2010-08-21 18:23:46发表:
事实上c和c++的混合体上不能被编译的,这段代码只能被理解为c++
pl_014 于 2010-08-21 16:35:35发表:
c里面怎么会有类啊
alick 于 2010-08-21 14:20:54发表:
C哪来的class???
看起来是C和C++的混合体~
绿色圣光 于 2010-08-21 12:41:23发表:
可是这是C啊……
pl_014 于 2010-08-21 11:45:11发表:
该不会是指向类的函数的指针长八位?试试普通指针。