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