结构块指的是什么?
what does structured-block refer to?
我现在多次看到在语法解释中使用了短语结构化块。例如:
#pragma omp single
structured-block
(这是来自OpenMP,但这并不重要。
以下两行是否也算作结构化块?
do_something1;
do_something2;
还是只有第一句话?
所以,简而言之:当说结构化块时,他们是什么意思?
基于此处的文档:
"结构化块"是单个语句或复合语句 顶部有一个入口,底部有一个出口
在此处查找复合语句的定义:
复合语句或块是用大括号括起来的序列 声明和声明。
鉴于这个定义,do_something1;
将是结构化块的唯一部分,因为在此之后开始一个新的"单一"语句。另一方面,如果你这样做了
#pragma omp <directive>
{
do_something1;
do_something2;
}
它将在结构化块中同时存在,因为它是一个"复合"语句。
最后,请注意定义说明single entry at the top and a single exit at the bottom
。这只是意味着我们不应该有一个中间的退出/控制流断点,如goto
语句,return
或throw error
介于两者之间。
结构化块要么是单个语句,例如
printf("Hellon");
或用大括号括起来的一系列语句:
{
printf("Hello ");
printf("Worldn");
}
此外,OpenMP 要求"单入口,单出口",这意味着您不能将goto
或类似的分支分支到块中,并且您不能有分支离开块,例如goto
或C++例外。 相反,代码需要到达右大括号。
相关文章:
- 在 c++ 中拥有一组结构的正确方法是什么?
- "perf_event_attr"结构的"read_format"属性的选项到底是什么?
- C++中deque数据结构的大O是什么?
- 将信息输入到下面显示的结构向量中的正确语法/格式是什么
- 不同的类或结构初始化方法之间的性能差异是什么?
- 结构块指的是什么?
- C++ 类层次结构中的"对齐"是什么意思?
- 自定义数据结构的优点是什么?
- 将此私有删除器函数包装在结构中的目的是什么?
- 在只读(即 const)访问器上执行结构化绑定的最佳实践是什么?
- 这里的以下 OOP 结构是什么?
- 用于筛子的最佳数据结构是什么(即一些被划掉的数字列表)?
- 将一种数据类型的向量复制到同一数据类型的结构向量中的有效方法是什么
- 在结构中使用联合的目的是什么?
- c++ 17 中结构自动定义构造函数的规则是什么?
- 对于可重定位的多平台安装,理想的 cmake 安装目录结构是什么?
- 结构化绑定的用例是什么?
- 从包含 IP 标头片段的二进制文件中读取结构的最佳方法是什么
- 是什么让这种易失性打破了结构的指针算法?
- 这个嵌套结构声明是什么意思?