宏定义来实现一个结构体成员相对于该结构体首地址的偏移量
生活随笔
收集整理的這篇文章主要介紹了
宏定义来实现一个结构体成员相对于该结构体首地址的偏移量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#define my_offerset(type , exp) ((int)&(((type*)0)->exp))//因為是求結構體的成員內存偏移。結構體會定義一種新的數據類型 所以type就是結構體
//exp就是結構體的成員
//((type*)0)把“0”強制轉化為指針類型,則該指針一定指向“0”
//然后該指針又指向該結構體某一成員地址,再由前面強轉為int
//則該宏就可以計算出結構體成員的偏移
一段例子? 方便理解:
#include <stdio.h>struct A
{char a;int b;double c;long d;
};int main()
{int offer;offer = my_offerset(struct A , c); //c呢就是結構體中那個double cprintf("偏移量是%d",offer); //c也是結構體中的一個成員return 0;
}
加油? 爭取進大廠,還有機會,沖沖沖!
總結
以上是生活随笔為你收集整理的宏定义来实现一个结构体成员相对于该结构体首地址的偏移量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怀孕六十天有胎芽无胎心
- 下一篇: 元气骑士残酷芯片有什么用?