zoukankan      html  css  js  c++  java
  • STRUCT_OFFSET( s, m )宏

    参考:https://www.cnblogs.com/sggggr/p/15028904.html

    define STRUCT_OFFSET(struct_object,e) (unsigned long)&(((struct_object*)0)->e)

    如上宏的意义,获取结构体S中元素M,相对于首元素的偏移量。

    #include <stdio.h>
    #define STRUCT_OFFSET(s,m)   ( (int)(&((s*)0)->m)) /* 定义获取结构成员相对偏移地址的宏 */
     
    struct man
    {
    	char name[63];
    	int year;
    	char son_name[59];
    	char son_year;
    };
    int main()
    { 
        printf("name offset:%d\n",STRUCT_OFFSET( struct man, name ));
        printf("year offset:%d\n",STRUCT_OFFSET( struct man, year ));
    	printf("son_name offset:%d\n",STRUCT_OFFSET( struct man, son_name ));
    	printf("son_year offset:%d\n",STRUCT_OFFSET( struct man, son_year ));
        return 0;
    }
    

    程序结果:

    name offset:0
    year offset:64
    son_name offset:68
    son_year offset:127
    
  • 相关阅读:
    URL
    B/S架构
    SQL查询语句
    SQL-Delete语句
    SQL运算符
    SQL结构查询语言
    SQL数据库数据类型详解
    标准文档流
    CSS
    字体样式
  • 原文地址:https://www.cnblogs.com/sggggr/p/15527372.html
Copyright © 2011-2022 走看看