原文:利用宏来求结构体成员偏移值

我们在书写C程序的时候,有时候需要根据结构体成员变量的地址,得到结构体的地址,特别是我们想用C来实现C 的继承特性的时候。我们对问题的分析如下: 输入:一个结构体定义type,这个结构体中某个成员变量的名字member以及它的地址ptr 输出:包含此成员变量的结构体的地址 为了便于分析,我们给出一个实例来说明 通过分析图示,我们可以看出,我们只需要把当前知道的成员变量的地址ptr,减去它在结构体当 ...

2013-10-01 04:51 0 3742 推荐指数:

查看详情

关于结构成员变量的地址偏移

最近遇到一个题目是关于回答结构成员变量地址偏移量的,实际运行的时候出乎我自己的想象! 看看以下结构实例truct: struct trc{ char char_i; short short_i; int int_i; long long_i; char char_j; int int_j ...

Wed Sep 06 23:28:00 CST 2017 0 1243
C/C++结构成员偏移量获取

分析代码节选自muduo. 以下代码通过offsetof获取sin_family在sockaddr_in6中的字段偏移量. 需要注意: offsetof并非C/C++标准,需要编译器内置支持. 以及针对的数据类型,尽量使POD类型数据(可参考下面链接中的提示 ...

Thu Nov 08 01:33:00 CST 2018 0 693
利用define对结构成员赋值

可以使用定义方式对结构成员进行赋值。 将代码进行预处理展开可以看到相应的被改为直接对结构进行操作。 展开后的部分代码 ...

Sun Nov 22 02:15:00 CST 2020 0 373
结构中的定义

第一次看见在结构中有定义,开始有点迷糊,想到该结构是如何存储的?定义会是不会多次编译?以下是我看的一个列子: 在这里我们要明白的是预编译与编译两者的区别:定义是在预编译时就会去找到相应的常量去替换,就是在编译成目标文件之前已经进行了替换,所以这里在结构中有定义 ...

Sun Apr 23 19:03:00 CST 2017 0 2447
【C语言】这种结构成员大小的方法,你可能需要了解一下~

在C语言编程中,有时候需要知道某结构中某成员的大小,比如使用堆内存来存储结构中的某成员时,需要知道该成员的大小,才好确定所需申请的空间大小。结构中某成员的大小,你会怎么做? 例子: d 成员所占内存空间的大小。 方法一 萌新尝试法 ...

Mon Aug 24 23:17:00 CST 2020 0 472
结构成员的引用

结构如下:struct student{ int num; char name[20]; char sex; float score;}; 1. 结构的初始化 struct student aa = {1001, "zhang", 'M', 80, 5}; 2. 引用整个结构 ...

Mon Oct 05 22:29:00 CST 2015 0 4562
结构之offsetof详细解析

1、#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER) (include/linux/stddef.h) 1.1 功能: 返回结构TYPE中MEMBER成员相对于结构首地址的偏移量,以字节为单位 ...

Wed May 11 23:55:00 CST 2016 0 2032
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM