码迷,mamicode.com
首页 > 其他好文 > 详细

不用sizeof()函数求当前主机上的一个int占用几个字节

时间:2015-04-09 19:49:02      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:面试题   c   iostream   namespace   sizeof   

1)宏定义实现:

   #define MySizeof(Value) (char*)(&Value + 1) - (char*)&Value

   (char*)&Value返回Value的地址的第一个字节, (char*)(&Value + 1)返回的是Value的地址的下一个地址的第一个字节

#include <iostream>
using namespace std;
#define my_sizeof(L_Value)  (char* )(&L_Value + 1) - (char* )&L_Value 
int main()
{
    int i;
    double f;
    double a[4];
    double* q;
    cout<<my_sizeof(i)<<endl;
    cout<<my_sizeof(f)<<endl;
    cout<<my_sizeof(a)<<endl;
    cout<<my_sizeof(q)<<endl;
    cout<<my_sizeof("aadf")<<endl;
    return 0;
}
2 )

#include <iostream>
using namespace std;
template <class Any>
int LengofArray(Any* p)
{
    return int(p+1) - int(p);
}
 
int main()
{
    int* i;
    double* q;
    char a[10];
    cout<<LengofArray(i)<<endl;
    cout<<LengofArray(q)<<endl;
    cout<<LengofArray(&a)<<endl;
    return 0;
}



不用sizeof()函数求当前主机上的一个int占用几个字节

标签:面试题   c   iostream   namespace   sizeof   

原文地址:http://blog.csdn.net/u014082714/article/details/44964205

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!