gpt4 book ai didi

c - 在 C 中获取函数的大小

转载 作者:行者123 更新时间:2023-12-03 23:48:05 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





What does 'sizeof (function name)' return?

(4 个回答)


去年关闭。




假设这段代码:

#include <stdio.h>

int a(){
int b = 5;
return b;
}

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

以上打印 1 .这意味着什么?

我知道什么时候 sizeof用于结构,它以字节为单位获取其中数据类型的总大小。但是当它用在一个函数上时它是什么意思呢?

编辑:

如果我这样做会怎样 sizeof(a()))而不是 sizeof(a)) .现在正在打印 4这是返回类型的大小,这是正确的方法吗?怎么不是未定义的?

最佳答案

申请 sizeof函数的运算符是违反约束的。这样做会调用 undefined behavior .

此约束在 C standard 的第 6.5.3.4p1 节中指定。关于 sizeof运算符(operator):

The sizeof operator shall not be applied to an expression that has function type or an incomplete type, to the parenthesized name of such a type, or to an expression that designates a bit-field member. The _Alignof operator shall not be applied to a function type or an incomplete type.

关于c - 在 C 中获取函数的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61344720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com