行为 问答列表

为什么这些构造使用增量前和增量后的未定义行为?

作者:PiX 提问时间:6/4/2009

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; ...

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

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

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

为什么这些构造使用增量前和增量后的未定义行为?

作者:PiX 提问时间:6/4/2009

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; ...

为什么这些构造使用增量前和增量后的未定义行为?

作者:PiX 提问时间:6/4/2009

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; ...

F# seq 行为

作者:kam 提问时间:12/4/2020

我对 F# 中序列表达式的内部工作有点困惑。 通常,如果我们使用 seq 制作一个顺序文件读取器,而没有故意缓存数据 seq { let mutable current = file.Rea...

是 a[i]=y++;和 a[i++]=y;未定义的行为或未指定的 C 语言?

作者:三六九 提问时间:1/13/2023

当我在寻找表达式为什么要定义行为时,我突然看到了一个解释,因为表达式存在于程序中的两个序列点之间,而 c 标准规定在两个序列点中副作用的发生顺序是不确定的,所以当表达式在程序中运行时, 不确定是先操作...

分配后工会的活跃成员

作者:cerveka2 提问时间:8/31/2022

假设 ,我有以下代码片段:sizeof( int ) == sizeof( float ) union U{ int i; float f; }; U u1, u2; u1.i = 1; //...

在 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 的段落几乎相同)。为什么会这样...

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

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

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


共63条 当前第1页