C中的封闭/功能块

Nowox

我一直认为在C语言中使用大括号块作为闭合块非常方便。主要原因是我可以更好地使用IDE中的语法折叠功能,而又不会增加代码的复杂性(例如添加其他功能)。

 // Block 1
 {
     int i; 
     i = some_work(i);
     j = i;
 }

 // Block 2
 {
    ...
 }

我不知道这在C中是否是正确的解决方案。是否有任何编程标准提到C中的闭包?

克拉斯·林贝克(KlasLindbäck)

大多数编程标准都主张将长函数划分为较短的函数,并使用空行将函数分隔为较小的单元。

造成这种情况的两个主要原因是可读性和可测试性。

如果将长函数分成较小的函数,则每个较小的函数都可以分别进行单元测试。

您所做的总比拥有一个强大的功能要好,但是却错过了可测试性部分。

根据代码的外观,您可能还会错过可读性。请记住,函数具有描述它的名称。块没有名称,因此您需要使用注释来描述它。

如果正确使用,则可以使用块来提高可读性。但是,对于简单的空白行也是如此。与空行相比,块的优势在于它限制了局部变量的范围,从而提高了可读性。

因此,对于您创建的每个块,应考虑它是对应于空行还是函数调用。在后一种情况下,将块转换为单独的功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C中的封闭/功能块

来自分类Dev

C#中的内联功能块

来自分类Dev

NodeRed功能块中的数学

来自分类Dev

在Matlab功能块内绘制Simulink中的实时信号

来自分类Dev

如何在CODESYS中参数化功能块?

来自分类Dev

高阶“运行”功能块在Kotlin中如何工作?

来自分类Dev

我如何停止lua功能块/调用中执行

来自分类Dev

在Swift可选功能块中引发错误

来自分类Dev

使用C#从TwinCAT功能块读取属性

来自分类Dev

MIT Scratch功能块

来自分类Dev

如何执行功能块?

来自分类Dev

调用命令功能块

来自分类Dev

结构作为Matlab功能块的输入

来自分类Dev

从功能块列表页面删除Drupal系统功能块

来自分类Dev

在Simulink中调试Matlab功能块时查看类属性

来自分类Dev

MeteorJS:在jQuery功能块中设置反应式var

来自分类Dev

有没有办法调用在foreach功能块中声明的变量?

来自分类Dev

是否可以在使用await的功能块中存在的for循环中使用await?

来自分类Dev

整个功能块是否真的存储在RETAIN存储器中?

来自分类Dev

simulink(matlab功能块)中的可变大小矩阵导致编译错误

来自分类Dev

模糊推理系统中可以有 1 个以上的功能块吗?

来自分类Dev

向量作为输入如何在 Simulink 的解释型 matlab 功能块中工作?

来自分类Dev

如何在 QML javascript 功能块内创建 C++ QObject?

来自分类Dev

如何为Matlab功能块创建多个输入?

来自分类Dev

在调用闭包之前如何制作Lua功能块

来自分类Dev

jQuery右键单击功能块普通菜单

来自分类Dev

jQuery右键单击功能块普通菜单

来自分类Dev

如何在Simulink Matlab功能块中使用符号

来自分类Dev

Moodle公式中的JSXGraph具有两个功能块:绑定到输入字段不起作用

Related 相关文章

热门标签

归档