Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C &引用;“继续”;及;“中断”;用于静态分析_C_Static Analysis_Break_Continue - Fatal编程技术网

C &引用;“继续”;及;“中断”;用于静态分析

C &引用;“继续”;及;“中断”;用于静态分析,c,static-analysis,break,continue,C,Static Analysis,Break,Continue,我知道已经有很多关于“中断并继续”是否应该被视为有害的讨论(底线是——或多或少——这取决于它;在某些情况下,它们提高了清晰度和可读性,但在其他情况下它们没有) 假设一个新项目正在开始开发,每夜构建的计划包括运行静态分析器。项目编码指南中是否应该避免(或强烈反对)使用continue和break,即使这会牺牲一点可读性并需要过度缩进?我最感兴趣的是这如何应用于C代码 从本质上讲,这些控制运算符的使用是否会使代码的静态分析大大复杂化,从而可能导致额外的误报,否则,如果不使用中断或继续,将记录潜在故障

我知道已经有很多关于“中断并继续”是否应该被视为有害的讨论(底线是——或多或少——这取决于它;在某些情况下,它们提高了清晰度和可读性,但在其他情况下它们没有)

假设一个新项目正在开始开发,每夜构建的计划包括运行静态分析器。项目编码指南中是否应该避免(或强烈反对)使用
continue
break
,即使这会牺牲一点可读性并需要过度缩进?我最感兴趣的是这如何应用于C代码

从本质上讲,这些控制运算符的使用是否会使代码的静态分析大大复杂化,从而可能导致额外的误报,否则,如果不使用中断或继续,将记录潜在故障

(当然,证明aribtrary程序正确性的完整静态分析是一个不可判定的命题,因此请保留您对此的任何实践经验,而不是理论上的不可能)


提前谢谢

我的直接反应是,为了避免
break
continue
而必须跳出的障碍可能会损害整个代码,并使静态分析(或其他许多分析)变得相当困难


不过,这将有点取决于您正在处理的代码的确切类型。举个例子,如果您有一个最适合作为
switch
语句实现的东西,那么禁止
break
实际上会迫使您使用嵌套的
if
/
else
语句,这将使代码更难正确分析,具体取决于具体情况,也很可能会对输出代码产生负面影响。

这种问题更适合程序员(programmers.stackexchange.com)论坛,而不是stackoverflow论坛。我认为……根据我[有限]的经验,程序员SE通常不会提供与之相同的详细技术回答,这就是为什么我认为这样会是一个更好的选择。有没有一种方法可以让我将其迁移到那里,而不仅仅是交叉发布?许多嵌套的
if
/
else
s可能需要更多的时间来解析,但我认为对于静态分析器来说,这要简单得多?@B.VB.:如果您正在编写自己的静态分析器,如果省略一些语言特性,可能会简单一些,是的。对于现有的静态分析器,它不太可能产生任何真正的区别。如果您确实想简化语言,那么这些可能不是正确的起点。+1。如果你正在编写自己的静态分析工具,并且想简化C++使你的(其他)工作更容易,为什么不去贬低类、函数和需要执行更多工作的所有其他特征?使用现有的工具,不要切断右臂来帮助左臂。