这段代码合法吗?:
#include typedef struct a_d{ int const x; } a_d; int a_d__ctor(a_d *X) { *(int*)&X->x = 42; //<-- legal or not? return 0; } int main() { a_d a; a_d__ctor(&a); printf("ax=%dn", ax); }
使用const
限定符声明的对象调用未定义的行为 。
根据标准(强调我的):
C11 6.7.3 / 6 类型限定符
如果尝试通过使用具有非const限定类型的左值来修改使用const限定类型定义的对象,则行为未定义。
以上就是c/c++开发分享我可以写一个非const结构的const成员吗?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/562330.html