C++中,可以使用sizeof(函数名)来计算函数的长度吗?

 我来答
帐号已注销
2011-03-19 · TA获得超过2326个赞
知道小有建树答主
回答量:419
采纳率:83%
帮助的人:217万
展开全部
不能,sizeof是测试对象的内存字节数,函数名是一个指针,sizeof(函数名)恒为4(在x86平台)
也不知道你说的是函数代码段长度还是其它,这个不固定,依赖于各个编译器,在Debug和Release下也是不一样的,不过一般有编译器有规定栈长度(函数调用的数据使用栈空间,代码使用代码段)。
Adolfans
2011-03-19 · TA获得超过202个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:177万
展开全部
我还真没遇到过求函数长度的情况。话说啥叫“函数的长度”?函数所对应的机器指令的长度?

不可以。sizeof返回的是一个数据类型、一个结构体类型、一个类或者该类型的数据的大小。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Monkey家园
推荐于2016-05-28 · TA获得超过5635个赞
知道大有可为答主
回答量:1134
采纳率:60%
帮助的人:613万
展开全部
不能。

你可以自己做实验得出结论的:
#include <iostream>
using namespace std;
void fun()
{
int k;

}

int main()
{
cout<<sizeof(fun)<<endl;
return 0;
}

编译后报错:
ISO C++ forbids applying `sizeof' to an expression of function 。

国际标准化组织C++标准禁止把sizeof应用于函数表达式(确切的说应该是不能得到函数的长度而不是不能调用函数表达式)。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
735292065mym
2013-03-01
知道答主
回答量:2
采纳率:0%
帮助的人:3042
展开全部
既然楼上都给演示了,为什么不贴出正确答案呢?以下这样是可以的。
#include <iostream>
using namespace std;
int fun()
{
int k=0;
return k;
}
int main()
{
cout<<sizeof(fun())<<endl;
system("pause");
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
依玉宇4s
2011-03-19 · TA获得超过181个赞
知道答主
回答量:399
采纳率:0%
帮助的人:124万
展开全部
可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式