当前位置:  技术问答>linux和unix

为什么32机上的指针长度为8字节呢 ?

    来源: 互联网  发布时间:2016-09-20

    本文导语:  #include  class base { public: virtual void func(){printf("call base::funcn");}; }; int main() { void(base::*p)() = &base::func;           // 以下在32位机器上,  GCC4.4.1 是 8   printf("sizeof( void(base::*p)()) %dn" , sizeof(p) ); // 长度为 8 pr...


#include 

class base
{
public:
virtual void func(){printf("call base::funcn");};
};


int main()
{
void(base::*p)() = &base::func;
 
        // 以下在32位机器上,  GCC4.4.1 是 8  
printf("sizeof( void(base::*p)()) %dn" , sizeof(p) ); // 长度为 8
printf("sizeof( void(base::*p)()) %dn" , sizeof(class base) );

return 0;
}

|
VC 6.0结果是 4 4。
会不会是gcc的一个bug?或者是方言?

|
艹,竟然是C++………………
我的GCC指针是4字节,如下:
	.file	"lenpoint.c"
.text
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl $0, %eax
leave
ret
.size main, .-main
.ident "GCC: (Ubuntu 4.4.3-4ubuntu5) 4.4.3"
.section .note.GNU-stack,"",@progbits

|
sizeof( void(base::*p)()) 8
sizeof( void(base::*p)()) 4

gcc version 4.4.1 [gcc-4_4-branch revision 150839] (SUSE Linux)

|
http://hi.csdn.net/space-3382811-do-wall.html
兄弟看这个链接,里面我回复了你啊
我仅仅测试了void(base::*p)() 这个指针的长度,是4个字节

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • gcc编译CORBA程序如何关闭智能指针转换为普通指针的警告
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 指向类成员函数的指针其实并非指针
  • 谁说java没指针,我觉得全是指针才对
  • 深入解析C++中的指针数组与指向指针的指针
  • 一个用指针传递内存的问题(如果传进去的是三重指针确不行)
  • busybox中的gzip运行过程中出现page fault错误,并指出出错的指针,但是怎么使用gdb调试,找到指针对应的语句?
  • 关于free指针的指针分量
  • C语言中常量指针与指针常量区别浅析
  • C语言中有指针,因此C语言可以创建链表,那么Java语言没有指针,那Java是否可以创建链表呢?
  • C++中指向对象的常指针与指向常对象的指针详解
  • 关于指针变量,struct 变量,指针使用的一些疑惑,望高手指教
  • 深入理解数组指针与指针数组的区别
  • 深入解析函数指针与返回函数的指针
  • 指向变量的常指针与指向常变量的指针详细解析
  • 结构指针类型强制转换
  • 请问return语句会执行哪些操作?在函数中return一个已分配内存的指针,该指针所占用的内存会释放吗?
  • 请问如何在linux (redhat)下传递一维数组指针?
  • C:函数指针
  • 利用函数指针的好处是什么?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3