C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 可以将volatile volatile的间接变化视为未定义的行为吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
易失性写入易失性const是否会引入未定义的行为?如果我在写作时放弃挥发怎么办?

volatile const int x = 42;
const volatilE int *p = &x;
*(volatilE int *)p = 8; // Does this linE introduce undefined behavior?
*(int *)p = 16; // And what about this one?

Compilable code

@R_419_1964@

当您尝试修改“初始”const对象时,它是未定义的行为(对于两个语句).从C11(N1570)6.7.3 / P6类型限定符(强调我的):

为了完整性,它可能值得添加,标准也说:

因此后面的陈述,即:

*(int *)p = 16;

对于第二个短语也是未定义的(它是“双UB”).

我相信C的规则是相同的,但不要拥有C 14的副本来确认.

大佬总结

以上是大佬教程为你收集整理的c – 可以将volatile volatile的间接变化视为未定义的行为吗?全部内容,希望文章能够帮你解决c – 可以将volatile volatile的间接变化视为未定义的行为吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。