|
|
1
33
您概述的方法大致正确,但您应该使用
下面是一些代码来演示它是如何工作的:
|
|
|
2
28
完整技术:
|
|
|
3
4
忽略填充和对齐,正如您所说。。。 如果所指向的元素完全是单一类型的,如示例中所示,则可以将结构强制转换为所需类型,并将其视为数组:
|
|
|
4
3
&((type*)0)——>(现场) "
|
|
|
5
1
在这个特定的示例中,您可以通过
代码位翻译为:取从地址s开始的内存,并将其视为指向的内存
注意写作
编辑2:我替换了所有
|
|
|
6
0
正如大多数其他答案所建议的那样,使用直接指针投射可以避免这种情况:
问题是这是不可移植的。没有通用的方法来确保类型以正确的对齐方式存储在块中,有些体系结构无法加载或存储到未对齐的地址。在块的布局由声明的结构定义的特殊情况下,这将是正常的,因为结构布局将包括必要的填充,以确保正确对齐。但是,由于您无法通过名称访问成员,因此听起来您实际上并不是在这样做。
为了便于携带,您需要使用
(其他类型类似)。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |