问题标签 [gcc-statement-expression]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4647 浏览

c++ - 将大括号包围的块放置在预期表达式的位置的 C++ 语法是什么?

我遇到了这个奇怪的 C++ 程序。

谁能解释发生了什么?这个结构叫什么?

0 投票
2 回答
474 浏览

c - 复合语句的 GCC 评估

我发现了以下构造,其中一个变量被分配给一个似乎是复合语句的东西,foo,在驱动程序中。为了比较,bar产生未定义的行为将相同的代码视为正确的函数。它似乎不符合我对 C 语言及其预处理器的理解,所以我怀疑它是 GCC 扩展。这里执行的逻辑是什么?(请参见此处的输出。)

输出:

0 投票
1 回答
121 浏览

c++ - 使用 C++11 标准的哪些规则来确定 ({ ... }) 中表达式的类型

我不明白编译器在这里做了什么以及为什么它可以工作 c++ 代码

(1) 和 (2) 大括号之间的表达式类型是 const char*。经过一些实验后,我发现了由最后一部分确定的那种类型的 (1)-(2)-表达式。

这是一个示例代码。它适用于 c++11 及更高版本。 http://cpp.sh/5tb47

我的问题:它是如何工作的。

0 投票
2 回答
471 浏览

c - 为什么“错误:跳转到语句表达式”只是有时?

我有两个使用相同技巧和功能的程序,但只有一个可以编译。

A)这个编译,也可以按预期工作:

B)这个甚至没有编译(错误如下所示):

错误:

为什么只有其中一个会抛出该错误?

0 投票
1 回答
96 浏览

c++ - GCC 语句表达式中的执行顺序

我发现两个相似的语句之间有不同的执行顺序(唯一的区别是下面的语句有一个附加的;)。析构函数的顺序不同。C++ 是否有相应的规范,或者它只是一个未指定的行为?

环境:GCC10

输出:

0 投票
2 回答
185 浏览

c++ - GCC/Clang 中这个奇怪的表达是什么?

我最近注意到GCC/Clang中有一个奇怪的有效C/C++表达式,这是我以前从未见过的。这是C++中的示例,但类似的表达式也适用于C

它的作用是显而易见的,但我想知道它叫什么。由于它在MSVC中不值得,我猜它是一个非标准扩展。但是有什么东西也适用于MSVC吗?特别是在C中?

0 投票
0 回答
53 浏览

c++ - 括号内的 C++ 花括号

我第一次反驳了下面的代码。我对它的语法以及它为什么会起作用感到困惑。