C语言中的闭包/功能块
我一直认为在C语言中使用支撑块作为闭包块是非常方便的。主要原因是我可以在IDE中更好地使用语法折叠,而不会增加代码的额外复杂性,例如添加额外的函数C语言中的闭包/功能块,c,closures,C,Closures,我一直认为在C语言中使用支撑块作为闭包块是非常方便的。主要原因是我可以在IDE中更好地使用语法折叠,而不会增加代码的额外复杂性,例如添加额外的函数 // Block 1 { int i; i = some_work(i); j = i; } // Block 2 { ... } 我不知道这在C中是否是正确的解决方案。是否有任何编程标准提到C中的闭包块 那些不是,它们只是范围块 您不能像在本地支持闭包的语言中使用闭包那样使用它们。例如,您不能
// Block 1
{
int i;
i = some_work(i);
j = i;
}
// Block 2
{
...
}
我不知道这在C中是否是正确的解决方案。是否有任何编程标准提到C中的闭包块 那些不是,它们只是范围块
您不能像在本地支持闭包的语言中使用闭包那样使用它们。例如,您不能存储对此类块的引用并在以后执行它
它们在C99中不太有用,因为现在你可以在任何地方声明新变量。那些不是,它们只是作用域块
您不能像在本地支持闭包的语言中使用闭包那样使用它们。例如,您不能存储对此类块的引用并在以后执行它
它们在C99中不太有用,因为现在可以在任何地方声明新变量。大多数编程标准提倡将长函数划分为短函数,并使用空行将函数与较小的单元分开 两个主要原因是可读性和可测试性 如果你把一个长函数分成几个小函数,每个小函数都可以单独进行单元测试 您正在做的事情比仅仅拥有一个大函数要好,但是您错过了可测试性部分 根据代码的外观,您可能还缺少可读性。记住,函数有一个描述它的名称。块没有名称,因此需要注释来描述它 如果使用正确,可以使用块来提高可读性。但是,对于简单的空行也是如此。与空行相比,块的优点是它限制了局部变量的范围,从而提高了可读性
这样,对于您创建的每个块,您应该考虑它是否对应于空行或函数调用。在后一种情况下,将块转换为单独的函数。
大多数编程标准主张将长函数划分为短函数,并使用空行将函数与较小的单元分开 两个主要原因是可读性和可测试性 如果你把一个长函数分成几个小函数,每个小函数都可以单独进行单元测试 您正在做的事情比仅仅拥有一个大函数要好,但是您错过了可测试性部分 根据代码的外观,您可能还缺少可读性。记住,函数有一个描述它的名称。块没有名称,因此需要注释来描述它 如果使用正确,可以使用块来提高可读性。但是,对于简单的空行也是如此。与空行相比,块的优点是它限制了局部变量的范围,从而提高了可读性这样,对于您创建的每个块,您应该考虑它是否对应于空行或函数调用。在后一种情况下,将块转换为单独的函数