使用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.但两者的大小保持不变