首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用c语言编写自定义sizeof()函数?

如何用c语言编写自定义sizeof()函数?
EN

Stack Overflow用户
提问于 2021-08-01 17:02:53
回答 1查看 179关注 0票数 0

我想为c_ sizeof()操作符实现另一个自定义函数。我从互联网上得到了很低的定义,而且它的工作非常好。

代码语言:javascript
复制
#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)

但是,与预处理器(#Define宏)函数不同,我想将其实现为一个单独的函数,如下所示。有人能帮我完成sizeof_custom()?的定义吗?

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

代码语言:javascript
复制
#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));
}
EN

回答 1

Stack Overflow用户

发布于 2021-08-01 17:05:27

不可能使用其他语言特性实现sizeof操作符。它是语言的一部分,必须由编译器实现。最重要的是:

不衰减到pointers

  • expression的
  • 数组类型在sizeof中不是
  • 数组是专门处理

的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68612626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档