//关于模拟sizeof函数实现计算类型大小
//查了很多资料,也用过模板
//但都无法获得对象的类型
//下面是一个用宏来实现的方法
#define my_sizeof(L_Value) ( /
(char *)(&L_Value + 1) - (char *)&L_Value /
)
#include <stdio.h>
#include <stdio.h>
int main(void){
int i;
double f;
double a[4];
double *p;
printf("%d/n", my_sizeof(i));
printf("%d/n", my_sizeof(f));
printf("%d/n", my_sizeof(a));
printf("%d/n", my_sizeof(p));
printf("%d/n", my_sizeof("abdegh"));
return 0;
}
//模板的类型操作
#include<iostream>
using namespace std;
template<class Any>
int LengthOfArray(Any * p)
{
return int(p+1) - int(p);
}
int main()
{
double * q;
char a[10];
cout << LengthOfArray(q)<<endl;
cout << LengthOfArray(&a)<<endl;
return 0;
}
//查了很多资料,也用过模板
//但都无法获得对象的类型
//下面是一个用宏来实现的方法
#define my_sizeof(L_Value) ( /
(char *)(&L_Value + 1) - (char *)&L_Value /
)
#include <stdio.h>
#include <stdio.h>
int main(void){
int i;
double f;
double a[4];
double *p;
printf("%d/n", my_sizeof(i));
printf("%d/n", my_sizeof(f));
printf("%d/n", my_sizeof(a));
printf("%d/n", my_sizeof(p));
printf("%d/n", my_sizeof("abdegh"));
return 0;
}
//模板的类型操作
#include<iostream>
using namespace std;
template<class Any>
int LengthOfArray(Any * p)
{
return int(p+1) - int(p);
}
int main()
{
double * q;
char a[10];
cout << LengthOfArray(q)<<endl;
cout << LengthOfArray(&a)<<endl;
return 0;
}