sizeof 计算函数大小的有关问题。

sizeof 计算函数大小的问题。。。
C/C++ code
#include <stdio.h>

int f()
{
    int a, b;
    a = b = 0;
    return 0;
}

int main()
{
    printf("sizeof(f): %d\n", sizeof(f));
    printf("sizeof(f()): %d\n", sizeof(f()));
    return 0;
}


输出是:

sizeof(f): 1
sizeof(f()): 4


请问这个是怎么回事, 如果函数名是地址,为什么sizeof出来是1????

------解决方案--------------------
标准里规定sizeof不能用于
函数名
void类型
所以这个结果是不确定的,依赖于编译器(爱怎么)实现(就怎么实现)。
------解决方案--------------------
至于你这个1的结果我觉得应该是编译扩展的结果,要知道函数名只代表一个入口地址,是没有类型的,对这个没有类型可言的使用sizeof运算符是不合符逻辑的