相关疑难解决方法(0)

C 严格别名是否使无类型静态内存池变得不可能?

WG14 成员 Jens Gustedt 在一篇关于严格别名规则的博文中说:

字符数组不能被重新解释为其他类型的对象。

事实上,这是真的吗?(我猜标准中的相应语言是说如果一个对象具有声明的类型,那么该类型就是它的有效类型。)如果是这样,这是否意味着分配器从静态声明的内存区域中分配内存是不可实现的标准C?

我知道 TeX 忽略了 Pascal 的大部分类型系统,并且由于类似的问题将所有内容都视为单词数组,但我希望如果我在 ( malloc-less) C 中发现自己处于类似的情况,我可以声明一个最大对齐char数组并继续以通常的方式使用结构。_Alignas除了作为表达非标准要求的标准化设备(类似于volatile)之外,我也看不出在这样的世界中可能有什么意义。

c standards memory-management strict-aliasing language-lawyer

21
推荐指数
2
解决办法
1218
查看次数