定义行为 问答列表

源文件字符的 C++ 阶段 1 转换集:C++ 之前与之后、C++23 之前

作者:mishar 提问时间:11/16/2023

cppreference的翻译阶段页面,对于翻译的第一阶段(C++23之前),在其步骤2中有一个注释。那: 接受的源文件字符集是实现定义的(从 C++11 开始) 这在规范的工作草案中也得到了回应...

写出边界矩阵

作者:MRn0b0dy 提问时间:11/14/2023

考试中的练习需要在纸上写下执行以下程序后记忆获得的值。问题是在这个程序中,当 for 循环到达元素 3 时,我们正在访问未分配的内存。写入未分配内存的值是实际存储的还是未定义的行为,因此不写入它是正确...

为整数类型分配无限值是否具有未定义的行为?

作者:chqrlie 提问时间:10/29/2023

C 标准规定了有限浮点值在存储为整数类型时如何转换它们,但它似乎没有指定非有限值的行为: 6.3.1.4 实浮点数和整数 1 当标准浮点型的有限值转换为 以外的整数类型时,小数部分将被丢弃(即,该...

如果 func() 修改全局变量 [duplicate],int sum = func(1) + func(2) 是否会导致未定义的行为

作者:D.J. Elkind 提问时间:11/1/2023

这个问题在这里已经有答案了: 以未指定的顺序使用具有副作用的函数是否为未定义的行为? (4 个答案) 21天前关闭。 受这篇 SO 帖子的启发,我想知道下面的代码片段是否会导致 UB 同时发生,并且...

在 Copy 类型中使用 std::p tr::write_volatile 实现内部可变性的安全性(即没有 UnsafeCell)

作者:Ricardo Machado 提问时间:10/29/2023

我正在尝试在值类型中实现内部可变性(用于缓存目的)。Copy 问题在于,据我所知,没有一种类型可用于内部可变性(例如 和相关类型,原子类型)允许该特征。顺便说一句,这是稳定的 Rust。Unsafe...

为什么在 C++11 之后,std::basic_string 的 past-the-end 迭代器的取消引用仍然是 UB?

作者:998244353 提问时间:10/10/2023

众所周知,C++11 添加了一个 null 终止符(不计入大多数成员函数)。但是当我阅读 cpp ref 时,我发现 UB 的取消引用(这一段与 std::vector 的段落几乎相同)。为什么会这样...

即使被访问的成员充分对齐,访问未对齐联盟的成员是否为未定义的行为?

作者:user16217248 提问时间:9/28/2023

在 C 中,如果我尝试通过未对齐的指针访问类型,可能会发生不好的事情: int x[2]; // Assuming CHAR_BIT == 8 && sizeof(int) == 4 *(int *...

什么是序列点,它们与未定义的行为有何关系?

作者: 提问时间:11/14/2010

什么是“序列点”? 未定义行为和序列点之间有什么关系? 我经常使用有趣而复杂的表达方式,比如,让自己感觉更好。我为什么要停止使用它们?a[++i] = i; 如果您已阅读本文,请务必访问后续问题...

如果 C 编译器不能证明缺少 UB,为什么禁止优化?

作者:Joshua 提问时间:9/19/2023

如果 C 程序具有未定义的行为,则任何事情都可能发生。因此,编译器可以假定任何给定的程序都不包含 UB。因此,假设我们的程序包含以下内容: x += 5; /* Do something else ...

未定义、未指定和实现定义的行为

作者:Zolomon 提问时间:3/8/2010

什么是 C 和 C++ 中的未定义行为 (UB)?未指定的行为和实现定义的行为呢?它们之间有什么区别?...


共50条 当前第2页