gpt4 book ai didi

c - C11 是否禁止这种行为(显然是凭空存储)?

转载 作者:IT王子 更新时间:2023-10-29 00:35:00 25 4
gpt4 key购买 nike

是否提到了 LWN article “Betrayed by a bitfield” 的行为?被C11禁止?假设 spinlock_t 是一种引用结构的类型,该结构只能通过其成员上的 C11 原子原语进行访问(实际上它使用 Linux(内核)内存屏障,但假设它没有这样它不是未定义的,因为使用了特定于实现的接口(interface))。除了标题中的问题,它是一个“凭空商店”的例子吗?。

提前致谢。

最佳答案

不,正如这里所展示的那样,它在 C11 中并未被禁止。 C11 只为 _Atomic 类型提供原子性保证,即您在语言中声明为原子的类型。由于内核使用自己开发的原语来确保您的原子性,因此 C11 无法在此处为您提供帮助。

与本土汇编程序相比,C11 _Atomic 的变化在于,_Atomic 可能会更改数据类型的大小和对齐属性。在给定的示例中,它可以强制尾随位域越过下一个字边界的边缘。

关于c - C11 是否禁止这种行为(显然是凭空存储)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28121290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com