读书人

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

发布时间: 2012-08-30 09:55:54 作者: rapoo

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运算符是不合符逻辑的

读书人网 >C语言

热点推荐