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

2025-02-26 01:17:22
推荐回答(3个)
回答1:

不能,sizeof是测试对象的内存字节数,函数名是一个指针,sizeof(函数名)恒为4(在x86平台)
也不知道你说的是函数代码段长度还是其它,这个不固定,依赖于各个编译器,在Debug和Release下也是不一样的,不过一般有编译器有规定栈长度(函数调用的数据使用栈空间,代码使用代码段)。

回答2:

我还真没遇到过求函数长度的情况。话说啥叫“函数的长度”?函数所对应的机器指令的长度?

不可以。sizeof返回的是一个数据类型、一个结构体类型、一个类或者该类型的数据的大小。。。

回答3:

不能。

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

}

int main()
{
cout< return 0;
}

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

国际标准化组织C++标准禁止把sizeof应用于函数表达式(确切的说应该是不能得到函数的长度而不是不能调用函数表达式)。