如何在 c 中编写自定义 sizeof() 函数?

我想为 c sizeof() 运算符实现一个替代的自定义函数。我从互联网上得到了以下定义,而且效果很好。

#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)

但是我想将它作为一个单独的函数来实现,而不是预处理器(#define 宏)函数,如下所示。 谁能帮我完成 sizeof_custom() 的定义?

注意:为什么我想以这种方式实现是为了理解我在尝试使用 void 指针实现它并找到差异时遇到的困难的原因(我知道 void 指针不允许算术运算,但是我如何构建这个函数?)。请帮忙。

#include <stdio.h>

return_type sizeof_custom ( arg )
{
....
....
// return the size of the variable
}

void main() 
{
int a;  // It can be int,float,char,....
printf("size = %d",sizeof_custom(a));
}
RODOMAIN 回答:如何在 c 中编写自定义 sizeof() 函数?

无法使用其他语言功能实现 sizeof 运算符。它是语言的一部分,必须由编译器实现。最重要的是:

  • 数组类型不会衰减为指针
  • 不计算 sizeof 中的表达式
  • 变长数组被特殊处理
本文链接:https://www.f2er.com/1224.html

大家都在问