undefined-behavior

undefined-behavior

文章 0 浏览 4

是`x--> 0 && C++ 中 array[x]` 定义明确的行为?

当我在左侧后递增布尔表达式时,可以在布尔表达式的两侧使用 x 吗? 有问题的一行是: if(x-- > 0 && array[x]) { /* … use x … */ } 这是通过标准…

三生路 2024-09-29 09:04:24 6 0

const_cast 和 UB

$5.2.11/7 - “[注:取决于 对象的类型,写操作 通过指针、左值或指针 到由 a 产生的数据成员 const_cast 抛弃 a const-qualifier68) 可能 产生 未定…

你对谁都笑 2024-09-29 08:06:11 9 0

奇怪的 HTML 注释行为

在我的代码中,我有一个带有单选按钮的表单。第一个单选按钮已显示,但第二个(每周重复)未显示?如果我删除评论标记,那么一切都会正常。但为什么会…

黎歌 2024-09-28 01:17:38 3 0

在 C99 中,f()+g() 是未定义还是只是未指定?

我曾经认为在C99中,即使函数f和g的副作用干扰,并且虽然表达式f() + g() 不包含序列点,f 和 g 将包含一些序列点,因此行为将是未指定的:f() 将在 g…

妥活 2024-09-27 23:15:21 10 0

为什么这个语句在 java 中不起作用 x ^= y ^= x ^= y;

int x=1; int y=2; x ^= y ^= x ^= y; 我期望这些值被交换。但它给出 x=0 和 y=1。 当我用C语言尝试时,它给出了正确的结果。…

感情废物 2024-09-26 03:30:15 10 0

我们可以通过指针来改变const定义的对象的值吗?

#include int main() { const int a = 12; int *p; p = &a; *p = 70; } 它会起作用吗?…

眉黛浅 2024-09-25 08:37:30 8 0

有符号右移=奇怪的结果?

我正在帮助某人做作业,遇到了这个奇怪的问题。问题是编写一个函数来反转有符号整数的字节顺序(无论如何,这就是函数的指定方式),这就是我想出的解…

笑梦风尘 2024-09-24 08:17:40 9 0

是“struct hack”吗?技术上未定义的行为?

我要问的是众所周知的“结构的最后一个成员具有可变长度”技巧。它是这样的: struct T { int len; char s[1]; }; struct T *p = malloc(sizeof(struc…

感情旳空白 2024-09-19 10:58:43 11 0

优化掉“while(1);”在 C++0x 中

已更新,见下文! 我听说并读到 C++0x 允许编译器为以下代码片段打印“Hello”, #include int main() { while(1) ; std::cout << "Hello" << std::en…

一城柳絮吹成雪 2024-09-16 06:20:24 12 0

这是未定义的 C 行为吗?

我们班的 C 编程教授问了这个问题: 你得到了代码: int x=1; printf("%d",++x,x+1); 它总是会产生什么输出? 大多数学生表示未定义行为。谁能帮助我…

氛圍 2024-09-14 05:27:44 8 0

表达式的行为:已定义还是未定义?

我有以下代码 int m[4]={1,2,3,4}, *y; y=m; *y = f(y++); // Expression A 我的朋友告诉我表达式 A 具有明确定义的行为,但我不确定他是否正确。 根…

楠木可依 2024-09-10 22:17:15 6 0

显式调用析构函数是否会导致此处的未定义行为?

在我看来,以下代码(来自一些 C++ 问题)应该会导致 UB,但看起来并非如此。这是代码: #include using namespace std; class some{ public: ~some()…

你对谁都笑 2024-09-10 11:46:44 8 0

这是 ATL::CComVariant 中的自分配错误吗?

ATL::CComVariant 具有 一些赋值运算符。我在实现中看到的是,在接受 LPCOLESTR 、 IUnknown* 或 IDispatch* 的赋值运算符中,第一个操作是调用 Clear…

朮生 2024-09-08 10:52:19 6 0

C 中字符数组的未定义行为(?)

当我尝试 char bla[32] = "foobar"; int i; putchar(bla[i]); 使用 strlen(bla) 我< 32,bla[i] 始终为 \0。但这实际上不是未定义的行为,应该避免吗…

倾听心声的旋律 2024-09-08 01:45:31 7 0

C++ 中的命名空间别名

众所周知,向命名空间 std 添加声明/定义会导致未定义的行为。此规则的唯一例外是模板专业化。 那么下面的“黑客”呢? #include namespace std_ { vo…

半寸时光 2024-09-07 18:19:20 4 0
更多

推荐作者

小瓶盖

文章 0 评论 0

wxsp_Ukbq8xGR

文章 0 评论 0

1638627670

文章 0 评论 0

仅一夜美梦

文章 0 评论 0

夜访吸血鬼

文章 0 评论 0

近卫軍团

文章 0 评论 0

更多

友情链接

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文