小编Fil*_*ara的帖子

指向匿名联合的指针是否在C11中有效?

const Boo *constBoo;
Boo *nonConstBoo;

nonConstBoo = ((union {const Boo *_q; Boo *_nq;})constBoo)._nq;
Run Code Online (Sandbox Code Playgroud)

以上构造在C11中是有效的,还是只有GCC/clang扩展,您可以以这种方式将指针强制转换为匿名联合?如果它无效,是否有其他方法可以在有效的C11代码中编写等效表达式?

目的是模拟C++ const_cast,它将与C11兼容并提供一些基本类型的安全性.从const到非const指针的显式转换将使用-Wcast-qual选项触发警告,这是不合需要的.

c c11

7
推荐指数
1
解决办法
294
查看次数

标签 统计

c ×1

c11 ×1