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

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 肥仔 閱讀(3913) 評(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福利av久久av| 欧美自拍丝袜亚洲| 欧美新色视频| 国产精品成人观看视频国产奇米| 欧美日韩理论| 国产精品女人网站| 激情伊人五月天久久综合| 亚洲高清一二三区| 亚洲先锋成人| 久久婷婷国产综合精品青草| 欧美激情视频给我| 一区二区欧美视频| 久久免费99精品久久久久久| 欧美精品午夜视频| 国产欧美精品日韩区二区麻豆天美| 国产视频一区在线| 亚洲人成在线免费观看| 日韩亚洲在线观看| 欧美亚洲视频在线观看| 美女黄色成人网| 亚洲精品久久嫩草网站秘色| 一区二区欧美在线| 久久人人爽国产| 国产精品swag| 亚洲国产天堂久久综合网| 亚洲欧美激情四射在线日| 猛干欧美女孩| 亚洲欧美国产一区二区三区| 欧美大片91| 国产一区二区剧情av在线| aⅴ色国产欧美| 噜噜噜91成人网| 亚洲在线观看免费视频| 欧美极品aⅴ影院| **欧美日韩vr在线| 久久久999精品免费| 9i看片成人免费高清| 乱中年女人伦av一区二区| 国产精品亚洲综合久久| 99视频超级精品| 欧美成人蜜桃| 久久精品久久99精品久久| 国产精品女主播在线观看 | 欧美性猛交视频| 亚洲国产婷婷| 久久综合给合| 久久精品国产99精品国产亚洲性色 | 欧美韩日视频| 久久激情综合网| 国产精品一级| 亚洲欧美在线一区| 一区二区日韩欧美| 欧美日韩亚洲三区| av72成人在线| 亚洲美女色禁图| 欧美精品一区二| 亚洲精品在线视频观看| 亚洲国产黄色| 欧美激情第4页| 99在线视频精品| 亚洲日本中文| 欧美人与性禽动交情品| 日韩一区二区精品视频| 亚洲人妖在线| 欧美性大战久久久久久久蜜臀| 亚洲视频专区在线| 亚洲无线一线二线三线区别av| 国产一区二区三区自拍| 欧美在线一区二区| 午夜精品久久久久久久久| 国产丝袜一区二区| 美女视频黄免费的久久| 免费在线亚洲| 亚洲一区二区精品在线| 一区二区三区毛片| 国产日韩成人精品| 久久综合999| 欧美精品成人| 亚洲欧美日韩在线高清直播| 午夜精品久久久久影视| 樱花yy私人影院亚洲| 亚洲国产精品第一区二区| 欧美精品三级日韩久久| 午夜国产精品视频| 久久久久久9| 夜夜嗨av一区二区三区四季av | 一区二区亚洲欧洲国产日韩| 欧美激情视频在线免费观看 欧美视频免费一| 老司机成人网| 亚洲欧美一区二区三区在线| 久久国产精品久久国产精品| 亚洲剧情一区二区| 午夜电影亚洲| 日韩视频在线永久播放| 午夜精品久久久久久久白皮肤| 最新日韩精品| 欧美在线免费| 亚洲一区二区三区影院| 蜜臀a∨国产成人精品| 午夜影视日本亚洲欧洲精品| 美国成人毛片| 久久久久亚洲综合| 欧美网站在线观看| 亚洲成人在线视频播放| 国产一本一道久久香蕉| 99国产精品私拍| 亚洲日本va午夜在线电影| 欧美亚洲免费在线| 亚洲免费中文| 欧美日本不卡| 欧美大香线蕉线伊人久久国产精品| 国产精品theporn88| 亚洲国产成人tv| 狠狠色伊人亚洲综合网站色| 亚洲特色特黄| 中国女人久久久| 欧美激情第8页| 欧美成人自拍| 伊伊综合在线| 久久精品国产2020观看福利| 香蕉av福利精品导航| 欧美日韩一区二区三区在线观看免 | 在线观看欧美精品| 亚洲男人影院| 亚洲欧美国产77777| 欧美激情网友自拍| 一区二区日韩| 亚洲人成在线观看网站高清| 一区二区三区亚洲| 亚洲欧美综合一区| 午夜伦欧美伦电影理论片| 欧美视频一区在线观看| 日韩视频亚洲视频| 亚洲网在线观看| 欧美日韩视频在线一区二区观看视频| 欧美激情一区二区三级高清视频| 激情视频亚洲| 老司机免费视频一区二区| 免费一级欧美片在线播放| 国内自拍视频一区二区三区| 性久久久久久久| 老鸭窝亚洲一区二区三区| 伊大人香蕉综合8在线视| 久久婷婷国产综合国色天香| 久久夜色精品一区| 亚洲第一毛片| 欧美福利视频一区| 一区二区三区日韩在线观看| 亚洲午夜一二三区视频| 欧美四级伦理在线| 亚洲午夜久久久| 久久午夜激情| 亚洲毛片在线观看| 欧美日韩情趣电影| 亚洲欧美另类在线观看| 久久这里有精品视频| 亚洲欧洲日本一区二区三区| 欧美日韩国内自拍| 亚洲欧美区自拍先锋| 久久久久一区二区| 亚洲欧洲综合另类| 国产精品久久久久毛片大屁完整版 | 欧美日韩亚洲一区二区三区| 亚洲一区二区三区四区在线观看| 久久美女性网| av不卡免费看| 国产一区二区三区在线观看精品| 久久性天堂网| 一个色综合av| 欧美1级日本1级| 中文久久精品| 加勒比av一区二区| 欧美日韩精品二区第二页| 欧美专区18| 一区二区三区成人精品| 久久综合九色综合久99| 亚洲视频在线观看| 亚洲黄网站在线观看| 国产精品一区久久久| 欧美第一黄网免费网站| 欧美一区二区三区免费观看视频| 亚洲国产成人av| 久久精品国产69国产精品亚洲| 最新日韩在线视频| 国产亚洲视频在线| 欧美视频一区二区三区在线观看| 久久久久久91香蕉国产| 亚洲亚洲精品三区日韩精品在线视频| 久久亚洲一区二区三区四区| 亚洲永久字幕| 99热在这里有精品免费| 国产一区在线播放| 国产精品无码永久免费888| 欧美激情一区二区三区| 久久精品国产综合精品| 亚洲欧美99| 午夜精品婷婷| 国产一区视频在线观看免费| 欧美午夜电影在线观看| 欧美激情精品久久久久久久变态|