Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
带有 GNU STL 的 GCC 4.8 会为 std::string 构造函数生成错误代码?
一些 C 代码 void func const std string theString std string theString theString theString more string std cout lt lt theStri
c
gcc
STL
undefinedbehavior
放弃 const of *this 是否会导致未定义的行为?
以下代码可编译 看起来运行良好 但这会导致任何未定义的行为吗 我想抛弃 const this 这是为了允许const my iterator改变它指向的数据 Test class A public A const int x x x voi
c
constants
undefinedbehavior
将字节转换为浮点数是否安全,或者可能会产生未定义的行为?
是否存在字节序列 当转换为f32 or f64 在 Rust 中产生未定义的行为 我将非有限值 例如 NaN Infinity 等 计算为有效浮点值 评论给这个答案 https stackoverflow com a 43708483 43
floatingpoint
Rust
undefinedbehavior
是否使用任何未定义的不确定值或仅使用那些存储在具有自动存储的对象中的值?
根据 C99 J 2 在以下情况下行为未定义 具有自动存储期限的对象的值在被使用时被使用 不定 那么对象具有不确定值的所有其他情况又如何呢 如果我们使用它们 我们是否也总是调用 UB 或者我们是否仅当它们包含陷阱表示时才调用 UB 示例包括
c
C99
undefinedbehavior
C11
优化掉“while(1);”在 C++0x 中
已更新 请看下文 我听说并读到 C 0x 允许编译器为以下代码片段打印 Hello include
c
C11
languagelawyer
infiniteloop
undefinedbehavior
哪些枚举值在 C++14 中是未定义行为,为什么?
标准中的脚注暗示任何枚举表达式值都是已定义的行为 为什么 Clang 的未定义行为清理程序会标记超出范围的值 考虑以下程序 enum A B 3 C 7 int main A d static cast a 8 return d B 下的输
c
enums
c14
languagelawyer
undefinedbehavior
为什么锁定 std::mutex 两次“未定义行为”?
按照这个article http www devx com SpecialReports Article 38883 1954 如果您尝试从同一线程两次锁定非递归互斥锁 而中间没有解锁 则会出现未定义的行为 我非常天真的想法告诉我为什么他们
c
C11
mutex
undefinedbehavior
形成对对象的引用是否构成访问?
形成对对象的引用是否构成访问 以下是 GCC 和 Clang 目前所做的事情 void test int const volatile ptr noexcept ptr movl rdi eax Reads ptr maybe unused
c
languagelawyer
undefinedbehavior
NullPointer
referencebinding
我可以使用 C++ 中的内置类型安全地 new[],然后强制转换指针,然后安全地删除[] 吗?
在我的代码中 我实际上有以下内容 wchar t buffer new wchar t size bonus irrelevant code here delete reinterpret cast
c
visualc
memorymanagement
undefinedbehavior
如果 'float'<= INT_MAX 为 true,那么为什么 (int)'float' 可能会触发未定义的行为?
示例代码 t0 c include
c
typeconversion
undefinedbehavior
C11
C17
将非数组变量的地址传递给声明为“Type ptr[static 1]”的函数参数是否有效?
如上所述here https stackoverflow com questions 3430315 what is the purpose of static keyword in array parameter of function
c
function
null
standards
undefinedbehavior
在 C 中调用函数时的序列点和未定义/未指定的行为
我试图确定我对 C 中序列点的理解 只是想检查一些东西 目前 我认为 1 是未定义的 而 2 只是未指定的 因为在 2 中 在评估参数后存在序列点g and h 所以我们不修改i序列点之间两次 但是参数的求值顺序f仍然未指定 我的理解正确吗
关于对齐存储和普通可复制/可破坏类型
我与一个比我聪明的人进行了一次有趣的讨论 并且我仍然对对齐存储和简单可复制 可破坏类型有一个悬而未决的问题 考虑以下示例 include
c
languagelawyer
C17
undefinedbehavior
int foo = foo 的标准参考
int foo foo 编译 C 标准的哪一部分允许这样做 3 3 1 声明点 basic scope pdecl 名称的声明点紧接在其完整声明符 第 8 条 之后和其初始值设定项 如果有 之前 如果声明位于文件范围内 则行为已明确定义 如
c
undefinedbehavior
我可以将二维数组视为连续的一维数组吗?
考虑以下代码 int a 25 80 a 0 1234 56 int p a 0 0 p 1234 56 第二行是否会调用未定义的行为 那么第四行呢 两条线do导致未定义的行为 下标被解释为指针加法后跟间接寻址 即a 0 1234 p 12
c
Arrays
pointers
multidimensionalarray
undefinedbehavior
(在哪里)clang 是否记录了实现定义的行为?
C 中实现定义的行为是未指定的行为 每个符合要求的实现都必须记录其选择 我很容易找到 gcc 的此类文档here https gcc gnu org onlinedocs gcc 5 3 0 gcc C Implementation htm
c
gcc
Clang
undefinedbehavior
clang 如何设法将具有未定义行为的代码编译成该机器代码?
这是代码的变体这条推文 https twitter com Poita status 903537522214621185 只是短一点 不会对菜鸟造成任何伤害 我们有这样的代码 typedef int Function static Fun
c
Compilation
Clang
compileroptimization
undefinedbehavior
在同一函数内,通过间接访问不在作用域内的局部变量是否是 UB?
在第二个右大括号之后 b只能通过间接访问a int main int a int b 42 a b printf d a UB return 0 Since b不再在范围内 这是 UB 吗 我知道从已经返回的函数中取消引用指向非静态局部变量
c
scope
undefinedbehavior
C# 中具有未定义行为的代码
在 C 中 有很多方法可以编写可编译但会产生结果的代码未定义的行为 维基百科 http en wikipedia org wiki Undefined behavior C 中有类似的东西吗 我们可以用 C 编写可以编译但具有未定义行为的代
c
undefinedbehavior
将双精度型转换为整数何时是未定义的行为
所以如下 double t 244 233 int a int t 不是未定义的行为 因为 244 可以容纳在里面int我做对了吗 否则 如果它是更大的值而不是 244 它不适合 int 这将是未定义的 我做对了吗 我更感兴趣的是 C 是如
c
floatingpoint
undefinedbehavior
floatingpointconversion
«
1 ...
3
4
5
6
7
8
9
...12
»