首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在c中实现类似sizeof运算符的sizeof函数?

如何在c中实现类似sizeof运算符的sizeof函数?
EN

Stack Overflow用户
提问于 2020-09-23 08:26:16
回答 1查看 78关注 0票数 0

我想实现一个自定义函数,类似于C中的sizeof运算符。如下代码所示,我有一个函数返回int数据类型的大小。

如何将此函数转换为泛化方式,以便它可以接受任何数据类型并返回传递的数据类型的大小。

代码语言:javascript
复制
#include<stdio.h>

int sizeof_fun(int a)
{
    return (char *)(&a+1) - (char *)(&a);
}

int main()
{
    int test;
    printf("Sizeof int -> %d \n", sizeof_fun(test));
    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2020-09-23 08:33:29

不能作为C函数执行此操作。

C函数的参数是固定的,因此你不能有一个根据参数类型动态返回不同大小的。一旦进入函数内部,您就不知道保存参数的原始变量的类型。您需要使用以下任一方法:

  • 实际大小(为什么你需要重新实现它?you can't!)
  • Preprocessor generics/templates
  • Function
  • C++C++

(再一次重载(再一次,重载))宏

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

https://stackoverflow.com/questions/64019371

复制
相关文章

相似问题

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