青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見(jiàn)諒!~
隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
數(shù)據(jù)加載中……

SIZEOF宏,彌補(bǔ)sizeof不足

 

對(duì)POD

struct Data

{

    int a;

    int b[32];

    char c[128];

};

C/C++不能夠支持如下的語(yǔ)法:sizeof(Data::a); sizeof(Data::b); sizeof(Data::c[0]), sizeof必須要有存在的對(duì)象,才可以進(jìn)行操作,這個(gè)不好

仿照offsetof宏,定義一個(gè)SIZEOF宏:#define SIZEOF(s,m) sizeof(((s *)0)->m)

VC6下可以工作,其他環(huán)境不知

 

#define SIZEOF(s,m) sizeof(((s *)0)->m)

struct Data

{

    int a;

    int  b[32];

    char c[128];

};

 

int main(int argc, char* argv[])

{

    int z = 0;

    z = SIZEOF(Data, a);    //---- 4

    z = SIZEOF(Data, b);//---- 128

    z = SIZEOF(Data, c);//---- 128

    z = SIZEOF(Data, b[0]);//---- 4

    z = SIZEOF(Data, c[0]);//---- 1

    return 1;

}

posted on 2008-11-28 18:56 肥仔 閱讀(3922) 評(píng)論(17)  編輯 收藏 引用 所屬分類(lèi): C++ 基礎(chǔ)

評(píng)論

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

template<typename R , typename T>
size_t member_size( R T::* )
{
return sizeof(R);
}

printf( "%d\n" , member_size( &Data::c );
2008-11-28 19:57 | LOGOS

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

0指針用來(lái)在不生成對(duì)象的情況下計(jì)算結(jié)構(gòu)體成員的偏移是個(gè)很好的應(yīng)用
2008-11-29 12:48 | 老狼

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

@LOGOS
能詳細(xì)的解釋一下嗎?
2008-11-29 14:40 | 過(guò)路人

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

@過(guò)路人
只是一個(gè)簡(jiǎn)單的模板而已
R即成員變量的類(lèi)型
2008-11-29 15:46 | LOGOS

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

to LOGOS:你的方法很好,但有兩個(gè)缺點(diǎn):
1. 不能作為編譯器期常量,這和sizeof的行為不一致
2. 不能用于引用類(lèi)型的成員,比如
struct Data
{
int (&d4)[2];
};
2008-12-01 11:45 | 周星星

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

@周星星
傳說(shuō)中挖bug狂人?
我blog偷盜了你蠻多篇文章,不要報(bào)警啊
2008-12-01 12:34 | 肥仔

# re: SIZEOF宏,彌補(bǔ)sizeof不足[未登錄](méi)  回復(fù)  更多評(píng)論   

不錯(cuò)
2008-12-01 19:11 | 王博煒

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

@肥仔
歡迎盜版:)

@LOGOS
變?yōu)榫幾g器期常量可以用
template<typename R,typename T> R& member_type( R T::* );
#define member_size(rt) sizeof( member_type(rt) )
但對(duì)于引用型成員變量則沒(méi)有辦法,我懷疑C++就不允許 R T::* 來(lái)指向引用型成員變量。
2008-12-02 09:04 | 周星星

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

@LOGOS
文章中有這么一句話:
C/C++不能夠支持如下的語(yǔ)法:sizeof(Data::a); sizeof(Data::b); sizeof(Data::c[0]), sizeof必須要有存在的對(duì)象,才可以進(jìn)行操作,這個(gè)不好

請(qǐng)問(wèn),用模板是不是可以不需要存在的對(duì)象呢?
應(yīng)該是要的吧?



2008-12-03 19:13 | OHFISH

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

@OHFISH
文章的這句話。。。。
sizeof(int),sizeof(double)
Data::a既不是一個(gè)類(lèi)型,也不是一個(gè)變量
2008-12-03 19:36 | LOGOS

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

的確,既不是類(lèi)型,也不是變量.
作者的方法是:sizeof(((s *)0)->m)
你的方法是:模板

我想請(qǐng)教一下:
你的模板在運(yùn)行期是不是要?jiǎng)?chuàng)建一個(gè)對(duì)象?

樓上 老狼說(shuō):
"0指針用來(lái)在不生成對(duì)象的情況下計(jì)算結(jié)構(gòu)體成員的偏移是個(gè)很好的應(yīng)用"
老狼說(shuō)的對(duì)嗎?
如果模板在運(yùn)行期要?jiǎng)?chuàng)建對(duì)象,而老狼說(shuō)的又對(duì)的話,那你和作者的方法還有區(qū)別的

2008-12-03 23:44 | OHFISH

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

@OHFISH
老狼說(shuō)得對(duì)
模板不生成對(duì)象
2008-12-04 09:14 | LOGOS

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

template<typename R , typename T>
class member_size( R T::* )
{
public:
enum {
result=sizeof(R);
};
};

cout<<member_size<&Data::a>::result<<endl;
常量了吧
2008-12-04 10:34 | vczh

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

@vczh
這種核武器都用上了。。。

看來(lái)看去,還是宏最簡(jiǎn)潔,優(yōu)美,漂亮。
2008-12-04 11:02 | 肥仔

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

@vczh
type traits
pfpf....
2008-12-04 15:18 | LOGOS

# re: SIZEOF宏,彌補(bǔ)sizeof不足  回復(fù)  更多評(píng)論   

不錯(cuò),學(xué)習(xí)了
2008-12-04 22:56 | 妮子

# re: SIZEOF宏,彌補(bǔ)sizeof不足[未登錄](méi)  回復(fù)  更多評(píng)論   

你自己定義什么類(lèi)型自己難道不清楚嗎?在大程序中SIZEOF宏除了可能引發(fā)混亂外,何用之有呢?
2008-12-17 20:19 | Chipset
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲成人在线视频网站| 最新国产成人av网站网址麻豆| 一区二区三区欧美激情| 亚洲精品久久久久久久久久久久 | 亚洲免费影院| 欧美在线视频全部完| 欧美在线播放一区| 老色鬼久久亚洲一区二区| 精品动漫3d一区二区三区免费| 影音先锋一区| 黑人操亚洲美女惩罚| 樱花yy私人影院亚洲| 亚洲精品在线观看免费| 亚洲午夜电影网| 欧美在线免费| 欧美fxxxxxx另类| 亚洲日本一区二区| 午夜精品影院| 欧美不卡视频| 欧美四级伦理在线| 狠狠爱综合网| 亚洲视频1区| 麻豆av一区二区三区久久| 亚洲激情中文1区| 亚洲欧美综合精品久久成人| 免费视频一区二区三区在线观看| 欧美日韩亚洲综合| 韩日在线一区| 欧美亚洲一区二区三区| 亚洲第一页在线| 午夜精品视频一区| 欧美日韩一区二区在线视频 | 国产精品va| 亚洲激情成人| 久久久精彩视频| 亚洲视频欧美视频| 欧美激情一区二区三区蜜桃视频| 国产视频不卡| 亚洲在线观看免费| 亚洲高清在线观看一区| 久久精品91| 国产女主播一区二区三区| 99re6热在线精品视频播放速度 | 米奇777在线欧美播放| 宅男噜噜噜66一区二区66| 麻豆久久精品| 伊人成人在线视频| 久久久91精品国产一区二区三区 | 亚洲性感激情| 亚洲国产欧美国产综合一区 | 欧美特黄一级大片| 亚洲精选在线观看| 欧美激情亚洲自拍| 久久综合99re88久久爱| 韩国一区电影| 久久男人资源视频| 久久成人一区| 一色屋精品亚洲香蕉网站| 久久男人资源视频| 久久成人一区| 亚洲一区二区网站| 美女图片一区二区| 久久精品72免费观看| 国产一区视频网站| 久久精品国产精品| 性娇小13――14欧美| 国产日本精品| 久久综合九色九九| 久久久久综合一区二区三区| 在线观看视频一区二区欧美日韩| 免费成人av| 欧美激情亚洲国产| 一本色道久久综合精品竹菊| 99精品欧美一区二区蜜桃免费| 欧美精品观看| 亚洲影院一区| 性娇小13――14欧美| 激情欧美一区二区三区| 女仆av观看一区| 欧美激情按摩在线| 亚洲欧美久久久| 久久精品国产一区二区电影| 亚洲国产成人在线| 日韩性生活视频| 国产日韩欧美成人| 欧美成人精品在线视频| 欧美精品v日韩精品v国产精品| 亚洲丝袜av一区| 久久成人免费视频| 一区二区三区免费看| 午夜精品久久久久久久蜜桃app| 韩国三级在线一区| 亚洲美女av黄| 国内视频精品| 99视频在线观看一区三区| 国产精品一级| 亚洲国产精品成人va在线观看| 国产精品黄色在线观看| 欧美二区在线播放| 国产九区一区在线| 亚洲欧洲三级| 一区二区三区无毛| 亚洲视频一区二区免费在线观看| 在线观看日韩| 亚洲综合视频网| 亚洲精品一区二区三区福利| 先锋影音久久久| 亚洲午夜一区二区| 麻豆成人在线观看| 久久精品女人| 国产精品视屏| 99一区二区| 亚洲精品国产精品乱码不99按摩| 午夜精品99久久免费| 一本色道久久88综合亚洲精品ⅰ| 久久精品国产久精国产思思| 亚洲天堂男人| 欧美人成网站| 嫩草国产精品入口| 国产视频一区在线| 亚洲一区在线播放| 亚洲影院免费| 欧美调教视频| 亚洲蜜桃精久久久久久久 | 久久亚洲不卡| 在线观看亚洲视频| 亚洲色诱最新| 一本久久综合| 欧美日韩成人一区| 欧美激情一二三区| 国色天香一区二区| 欧美在线二区| 久久久久久久久综合| 国产日韩欧美三级| 午夜精品一区二区三区在线播放| 亚洲一区二区免费视频| 欧美日韩一区二区三区在线| 日韩视频永久免费观看| 一区二区三区导航| 欧美视频在线一区二区三区| 一区二区高清在线观看| 亚洲一区二区三区视频播放| 欧美日韩精品一本二本三本| 日韩视频在线观看免费| 亚洲一区二区三区涩| 国产精品久久久久影院色老大 | 免费亚洲视频| 亚洲国产婷婷香蕉久久久久久99| 亚洲国产一区二区三区在线播| 欧美1区视频| 日韩视频中文字幕| 性色av一区二区怡红| 国产一级久久| 麻豆久久婷婷| av成人手机在线| 欧美在线一二三区| 激情小说另类小说亚洲欧美| 久久亚洲视频| 亚洲片在线观看| 午夜精品久久久久久久99水蜜桃| 国产日韩在线亚洲字幕中文| 久久综合色88| 99天天综合性| 久久久久国产精品厨房| 在线欧美不卡| 欧美日韩精品一区视频| 亚洲欧美日韩一区二区三区在线| 久色婷婷小香蕉久久| 9久草视频在线视频精品| 国产精品入口66mio| 久久在线免费观看| 一本久道久久久| 久久免费国产精品| 一卡二卡3卡四卡高清精品视频 | 国产一区再线| 欧美精品自拍偷拍动漫精品| 亚洲欧美成人网| 欧美国产丝袜视频| 欧美一级欧美一级在线播放| 亚洲国产欧美不卡在线观看| 国产精品久久久久久久9999 | 欧美激情 亚洲a∨综合| 亚洲午夜av| 亚洲国产毛片完整版| 国产精品亚洲不卡a| 欧美激情四色| 久久精品国产99国产精品| 一区二区国产精品| 亚洲电影免费在线观看| 欧美一区二区视频97| 一本久道综合久久精品| 影院欧美亚洲| 国产精品乱码一区二区三区| 欧美福利影院| 久久av在线看| 亚洲无线一线二线三线区别av| 欧美大色视频| 免费成人高清| 久久久人成影片一区二区三区| 99热这里只有精品8|