sizeof 计算函数大小的有关问题。
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运算符是不合符逻辑的