我想实现一个自定义函数,类似于C中的sizeof运算符。如下代码所示,我有一个函数返回int数据类型的大小。
如何将此函数转换为泛化方式,以便它可以接受任何数据类型并返回传递的数据类型的大小。
#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;
}发布于 2020-09-23 08:33:29
不能作为C函数执行此操作。
C函数的参数是固定的,因此你不能有一个根据参数类型动态返回不同大小的。一旦进入函数内部,您就不知道保存参数的原始变量的类型。您需要使用以下任一方法:
(再一次重载(再一次,重载))宏
https://stackoverflow.com/questions/64019371
复制相似问题