小编HAR*_*HIK的帖子

sizeof(函数)总是返回1.为什么?

使用sizeof()的函数的大小始终返回1

我只是试图找到一个函数的大小.虽然使用sizeof()来查找它总是返回的大小1.即使函数是一个定义良好的函数它只返回1.我只想知道为什么它返回1.在说sizeof(功能)时它实际上考虑了什么.

考虑一个简单的交换功能.我用fun3来表示占用的地址差异.

void fun1(int a,int b)
{
 int temp;
 temp=a;
 a=i;
 i=b;
 printf("%d\t %d\n",a,b);
}
void fun2()
{

}
void fun3()
{

}
void main()
{
 printf("fun1\t Address : %d \t Size : %d\n",fun1,sizeof(fun1));
 printf("fun2\t Address : %d \t Size : %d\n",fun2,sizeof(fun2));
 printf("fun3\t Address : %d \t Size : %d\n",fun3,sizeof(fun3));
}
Run Code Online (Sandbox Code Playgroud)

这里的输出是
fun1地址:4199248大小:1
fun2地址:4199301大小:1
fun3地址:4199307文件大小:1

fun1占用的地址数量巨大,fun2仅占用6.但两者的大小保持不变

c printf function-pointers sizeof

3
推荐指数
1
解决办法
148
查看次数

标签 统计

c ×1

function-pointers ×1

printf ×1

sizeof ×1