首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么指向函数的指针是8字节?

为什么指向函数的指针是8字节?
EN

Stack Overflow用户
提问于 2013-10-08 19:56:47
回答 4查看 1.5K关注 0票数 2

因为虚拟化,我知道指向函数的指针是8字节,但是为什么指向函数的指针是8字节呢?

代码语言:javascript
复制
typedef void(*fun())();
sizeof(fun*); // returns 8 byte
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-08 19:57:57

如果您有一个具有8位字节的64位系统(听起来是这样的),那么所有指针的大小大概都是8字节。虚拟化与它没有任何关系。

票数 14
EN

Stack Overflow用户

发布于 2013-10-08 19:58:16

这是因为它们都是指向内存地址的指针,不管它们指向什么类型的数据,而且您正在64位系统上运行

如果说是记忆地址..。4字节,这是不可能有超过4GB的内存在您的计算机上。只是没有足够的不同的指针值。

票数 4
EN

Stack Overflow用户

发布于 2013-10-08 19:58:43

代码语言:javascript
复制
pointer to a pointer to a function is 8 byte? 

它也是一个指针。

char *, int *, float * and etc所有这些指针都具有相同的大小和函数指针。

指针的大小取决于体系结构。

在大多数体系结构中,指针的大小在您的情况下是相同的,8字节(64位)

32位大小是4字节,

这是基于@ Grijesh Chauhan评论添加的。

There have been architectures where pointers to different types have different sizes.

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19257116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档