问题标签 [offsetof]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 为什么非常量 offsetof 表达式有效?
为什么会这样:
如果我正确地记得 offsetof 的定义,它是一个编译时构造。使用 'i' 作为数组索引会产生非常量表达式。我不明白编译器如何在编译时评估表达式。为什么不将此标记为错误?
c - C语言中带类型转换的宏,详细学习offsetof
以下代码及其输出:
我试图理解这里使用的类型转换。我认为,编译器的作用是将其视为(type *)(value)
从地址(值)开始的类型。因此,对于给定的结构,预期值为 0,即 offsetof 为 b,但由于我们使用不同的值进行类型转换,我们得到不同的偏移量。请让我知道我的理解是否正确。我只是想了解文字是如何进行类型转换的及其含义。这在Linux内核中使用。因此也标记了它们。
c++ - 在编译时确定结构成员字节偏移量?
我想在编译时找到结构成员的字节偏移量。例如:
我想知道字节偏移量normal
是(在这种情况下应该是12
。)
我知道我可以使用offsetof
,但这是一个运行时函数,我不想使用它。
我正在努力实现的目标是可能的吗?
编辑:offsetof
是编译时,我的错!
c - 打印所有结构成员的偏移量
我的意图是输出一个列表,其中包含所有结构成员的偏移量typedef struct
。
在我的例子中,这个结构存储在一个外部 EEPROM 中,可以通过串行连接访问的接口按字节访问。
要访问 EEPROM 内容,我需要知道结构成员的偏移量。
如何告诉编译器对每个结构成员执行 offsetof 任务?
c++ - C++11 有一些可移植且有效的方法来从嵌套类访问封闭类吗?
我需要的可以通过将this
封闭类的指针存储到嵌套类中来完成,例如:
这很好用,但sizeof(void*)
每个嵌套成员类需要更多的内存字节。是否存在有效且可移植的方法来执行此操作,而无需存储指向 in 实例的CEnclosing
指针m_e
?
c++ - 对模板类使用 offsetof
从 C++ 标准:
标准布局类是这样的类:
— 没有非标准布局类(或此类类型的数组)或引用类型的非静态数据成员,
— 没有虚函数 (10.3) 和虚基类 (10.1),
— 对所有非静态数据成员具有相同的访问控制(第 11 条), — 没有非标准布局的基类,
— 要么在最派生类中没有非静态数据成员,并且最多有一个具有非静态数据成员的基类,要么没有具有非静态数据成员的基类,并且
— 没有与第一个非静态数据成员相同类型的基类
宏 offsetof(type, member-designator) 在本国际标准中接受一组受限制的类型参数。如果 type 不是标准布局类(第 9 条),则结果未定义
offsetof
考虑到这些语句,对于依赖于模板参数的成员是否有任何安全的使用方式?如果没有,我如何获得模板类中成员的偏移量?使用以下内容可能不安全:
在非标准布局类上?
在根据标准不安全的样本之后:
c++ - 从成员中查找结构基地址的标准方法
我Data
在堆上分配了一个实例,以及一个指向其std::string b;
成员的指针。如何Data
以标准方式获取字符串所属实例的基地址,同时考虑偏移和填充?
我试过从指针中减去sizeof(int)
和,但我无法让它工作。std::offsetof(Data, std::string)
std::string*
templates - gcc,我可以将 offsetof() 与指向成员的模板指针一起使用吗?
下面的代码在这里:https ://ideone.com/XnxAyw
我得到的编译器错误是:
Visual Studio 可以使用offsetof(type, 'pointer to member'),但这是因为它松懈吗?如果是这样,是否有人知道使用 offsetof() 和指向成员模板参数的指针的符合标准的方法?
这里的另一个尝试:https ://ideone.com/HD8PI0
在这一点上完全被难住了,这是第二次尝试:
c++ - 关于 C 和 C++ 中的 offsetof 用法?
在 C 中,我看到了一些 offsetof 的用法来计算结构中成员到其开头的偏移量?
是否仍然建议在 C++ 中使用?没有这个宏还有其他方法吗?
c++ - getting offset of struct member crash
As far as i know "offsetof" macro is defined as :
based on this link : http://en.wikipedia.org/wiki/Offsetof
So I write my own code snippet to calculate offset of a struct members:
My questions are:
- Does the type-cast cause the crash. Why can`t cout the offset of the first member but printf can?
- Why should we type-cast. Is that must be done ?
Any opinions are truely appreciated :)