C库宏-offsetof()
生活随笔
收集整理的這篇文章主要介紹了
C库宏-offsetof()
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在項(xiàng)目開發(fā)過(guò)程中,發(fā)現(xiàn)了offsetof()函數(shù),隨即查詢了此函數(shù),摘錄如下:
C庫(kù)宏 - offsetof()
描述
? C庫(kù)宏offsetof(type, member-designator)會(huì)生成一個(gè)類型為size_t的整形常量,它是一個(gè)結(jié)構(gòu)成員相對(duì)于結(jié)構(gòu)開頭的字節(jié)偏移量。成員是由member-designator給定的,結(jié)構(gòu)的名稱是在type中給定的。
聲明
? 下面是offsetof()宏的聲明
offsetof(type, member-designator)參數(shù)
- ? type -- 這是一個(gè)class類型,其中,member-designator是一個(gè)有效的成員指示器。
- ? member-designator -- 這是一個(gè)class類型的成員指示器
返回值
? 該宏返回類型為size_t的值,表示type中成員的偏移量。
實(shí)例
? 下面的實(shí)例演示了offsetof()宏的用法。
#include <stddef.h> #include <stdio.h>struct address {char name[50];char street[50];int phone; };int main() {printf("address 結(jié)構(gòu)中的name偏移 = %d字節(jié)。\n",offsetof(struct address, name));printf("address結(jié)構(gòu)中的street偏移 = %d字節(jié)。\n",offsetof(struct address, street));printf("address 結(jié)構(gòu)中的street偏移的%d字節(jié)。\n",offsetof(struct address, phone));return(0); }? ? 讓我們編譯并運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
address 結(jié)構(gòu)中的name偏移 = 0字節(jié) address 結(jié)構(gòu)中的struct偏移 = 50字節(jié) address 結(jié)構(gòu)中的phone偏移 = 100字節(jié)參考鏈接:http://www.runoob.com/cprogramming/c-macro-offsetof.html
總結(jié)
以上是生活随笔為你收集整理的C库宏-offsetof()的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 安装php遇到的问题
- 下一篇: ngx_lua模块API说明