首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-08-30 
sizeof 计算函数大小的问题。。。C/C++ code#include stdio.hint f(){int a, ba b 0return 0}int ma

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

热点排行