小编Anu*_*dav的帖子

sizeof(函数指针) vs sizeof(函数名)

在此输入图像描述

以下是程序的文本:

#include <stdio.h>

int f(int x){
    return x+1;
}

int main() {
    int (*p)(int) = f;

    printf( "%d\n", sizeof(p) );
    printf( "%d\n", sizeof(f) );
}
Run Code Online (Sandbox Code Playgroud)

该图像与 C 代码相关,我的问题仅针对 C。

f是函数的名称,并且p是指向该函数的指针f

由于p最终是一个地址,因此根据地址总线的大小,输出结果sizeof(p)为真,这完全没问题。

这里f也是指向函数f。所以最终f也是一个地址。

我的主要问题是为什么 的输出sizeof(f)不是8,为什么是1以及如何是1?

c function-pointers function sizeof implicit-conversion

-1
推荐指数
1
解决办法
98
查看次数