主要内容

校验码

查看马铃薯可能存在的代码文件

描述

例子

校验码(文件名显示关于消息的消息文件名这报告了代码改进的潜在问题和机会。这些消息有时被称为代码分析器消息。消息中的行号是一种超链接,您可以单击以在编辑器中直接转到该行。确切的文字校验码消息受版本之间的某些更改。

校验码(文件名1,......,文件名ñ)显示每个指定的消息文件名

例子

校验码(___选项1,......,选项ñ)根据指定的选项标志修改返回的消息。例如,指定'-Modcyc'要请求修改后的循环复杂性要用每条消息返回。您可以使用先前语法中的任何输入参数指定选项。

例子

信息=校验码(___,' - struct')将信息返回为一个N.-经过-1结构阵列,在哪里N.是找到的消息数。

味精=校验码(___,'-细绳')将信息作为字符向量返回。

如果你省略了'--truct'要么'-细绳'参数并指定输出参数,默认行为是'--truct'

[___FILEPATH] =校验码(___也退货FILEPATH,文件名的绝对路径。您可以指定FILEPATH与之无论'--truct'要么'-细绳'选项。

例子

全部收缩

跑步校验码在示例文件上lengefline.m.。MATLAB®显示代码分析仪消息lengefline.m.在命令窗口中。

校验码('lencefline'
l 21(c 1-9):分配给变量'nothandle'的值可能未使用。l 22(c 12-15):numel(x)通常比prod快(尺寸(x))。l 23(c 5-11):变量'notline'似乎在每个循环迭代上更改大小。考虑预先接收速度。L 23(C 44-49):使用Strcmpi(str1,str2)而不是使用对strcmp的呼叫中的upper / lower。l 27(c 12-15):numel(x)通常比prod快(尺寸(x))。l 33(c 13-16):变量“数据”似乎在每个循环迭代上更改大小。考虑预先接收速度。L 33(C 24-31):使用带有结构而不是GetField的动态字段名。l 37(c 29):当两个参数都是数字标量时,考虑更换| with || for performance. L 38 (C 47): When both arguments are numeric scalars, consider replacing | with || for performance. L 39 (C 47): When both arguments are numeric scalars, consider replacing | with || for performance. L 42 (C 13-15): The variable 'dim' appears to change size on every loop iteration. Consider preallocating for speed. L 44 (C 13-15): The variable 'dim' appears to change size on every loop iteration. Consider preallocating for speed. L 47 (C 21): A '[' might be missing a closing ']', causing invalid syntax at ')'. L 47 (C 51): A '(' might be missing a closing ')', causing invalid syntax at ';'. L 47 (C 54): Parse error at ']': usage might be invalid MATLAB syntax. L 48 (C 17): Terminate statement with semicolon to suppress output (in functions). L 48 (C 23): If you intend to specify expression precedence, use parentheses () instead of brackets [].

跑步校验码在示例文件上lengefline.m.。包括消息ID并将结果存储在结构中。

INFO = CHECKCODE('lencefline''-ID'
info =17×1结构数组与字段:ID消息修复线列

查看第一条消息的值

信息(1)
ans =.结构与字段:ID:'nasgu'消息:'分配给变量'nothandle'的值可能未使用。'FIX:0行:21列:[1 9]

跑步校验码在示例文件上lengefline.m.使用'-Modcyc'选项。Matlab®显示文件的修改循环复杂性,后跟代码分析仪消息lengefline.m.

校验码('lencefline''-Modcyc'
l 1(c 23-34):'lenderofline'的修改循环复杂度为12. l 21(c 1-9):分配给变量'nothandle'的值可能未使用。l 22(c 12-15):numel(x)通常比prod快(尺寸(x))。l 23(c 5-11):变量'notline'似乎在每个循环迭代上更改大小。考虑预先接收速度。L 23(C 44-49):使用Strcmpi(str1,str2)而不是使用对strcmp的呼叫中的upper / lower。l 27(c 12-15):numel(x)通常比prod快(尺寸(x))。l 33(c 13-16):变量“数据”似乎在每个循环迭代上更改大小。考虑预先接收速度。L 33(C 24-31):使用带有结构而不是GetField的动态字段名。l 37(c 29):当两个参数都是数字标量时,考虑更换| with || for performance. L 38 (C 47): When both arguments are numeric scalars, consider replacing | with || for performance. L 39 (C 47): When both arguments are numeric scalars, consider replacing | with || for performance. L 42 (C 13-15): The variable 'dim' appears to change size on every loop iteration. Consider preallocating for speed. L 44 (C 13-15): The variable 'dim' appears to change size on every loop iteration. Consider preallocating for speed. L 47 (C 21): A '[' might be missing a closing ']', causing invalid syntax at ')'. L 47 (C 51): A '(' might be missing a closing ')', causing invalid syntax at ';'. L 47 (C 54): Parse error at ']': usage might be invalid MATLAB syntax. L 48 (C 17): Terminate statement with semicolon to suppress output (in functions). L 48 (C 23): If you intend to specify expression precedence, use parentheses () instead of brackets [].

通过创建和指定设置文件来禁止特定消息。例如,文件lengefline.m.包括几条使用的线条|而不是||作为要么操作员。默认情况下,校验码标志这些行。

校验码('lencefline'
l 21(c 1-9):分配给变量'nothandle'的值可能未使用。l 22(c 12-15):numel(x)通常比prod快(尺寸(x))。l 23(c 5-11):变量'notline'似乎在每个循环迭代上更改大小。考虑预先接收速度。L 23(C 44-49):使用Strcmpi(str1,str2)而不是使用对strcmp的呼叫中的upper / lower。l 27(c 12-15):numel(x)通常比prod快(尺寸(x))。l 33(c 13-16):变量“数据”似乎在每个循环迭代上更改大小。考虑预先接收速度。L 33(C 24-31):使用带有结构而不是GetField的动态字段名。l 37(c 29):当两个参数都是数字标量时,考虑更换| with || for performance. L 38 (C 47): When both arguments are numeric scalars, consider replacing | with || for performance. L 39 (C 47): When both arguments are numeric scalars, consider replacing | with || for performance. L 42 (C 13-15): The variable 'dim' appears to change size on every loop iteration. Consider preallocating for speed. L 44 (C 13-15): The variable 'dim' appears to change size on every loop iteration. Consider preallocating for speed. L 47 (C 21): A '[' might be missing a closing ']', causing invalid syntax at ')'. L 47 (C 51): A '(' might be missing a closing ')', causing invalid syntax at ';'. L 47 (C 54): Parse error at ']': usage might be invalid MATLAB syntax. L 48 (C 17): Terminate statement with semicolon to suppress output (in functions). L 48 (C 23): If you intend to specify expression precedence, use parentheses () instead of brackets [].

创建一个设置文件,禁止屏幕标记使用|的消息作为要么操作员。

  1. 在这一点标签,在环境部分,单击喜好按钮。

  2. 选择代码分析仪在左窗格中。

  3. 在下面默认设置, 在里面美学和可读性部分,清除消息采用而不是|作为(标量)条件陈述中的或运算符

  4. 进入mysettings.txt.作为文件名并将其保存到您当前的文件夹中。

  5. 按下取消按钮退出首选项面板而不更改活动设置。

跑步校验码使用自定义设置文件在示例文件上mysettings.txt.。留言采用而不是|作为(标量)条件陈述中的或运算符被抑制,在消息列表中不再可见。

校验码('lencefline''-config = mysettings.txt'
l 21(c 1-9):分配给变量'nothandle'的值可能未使用。l 22(c 12-15):numel(x)通常比prod快(尺寸(x))。l 23(c 5-11):变量'notline'似乎在每个循环迭代上更改大小。考虑预先接收速度。L 23(C 44-49):使用Strcmpi(str1,str2)而不是使用对strcmp的呼叫中的upper / lower。l 27(c 12-15):numel(x)通常比prod快(尺寸(x))。l 33(c 13-16):变量“数据”似乎在每个循环迭代上更改大小。考虑预先接收速度。L 33(C 24-31):使用带有结构而不是GetField的动态字段名。l 42(c 13-15):变量'dim'似乎在每个循环迭代时更改大小。 Consider preallocating for speed. L 44 (C 13-15): The variable 'dim' appears to change size on every loop iteration. Consider preallocating for speed. L 47 (C 21): A '[' might be missing a closing ']', causing invalid syntax at ')'. L 47 (C 51): A '(' might be missing a closing ')', causing invalid syntax at ';'. L 47 (C 54): Parse error at ']': usage might be invalid MATLAB syntax. L 48 (C 17): Terminate statement with semicolon to suppress output (in functions). L 48 (C 23): If you intend to specify expression precedence, use parentheses () instead of brackets [].

输入参数

全部收缩

文件名称,指定为字符向量,字符串数组或字符向量的单元格数组。文件名可以包含部分路径,但必须在搜索路径上的文件夹中或在当前文件夹中。

如果文件名是一个非卡尔字符串数组或字符向量,matlab的小区数组®显示每个文件的信息。

笔记

您无法组合文件名的单元格数组和字符数组。例如,你不能拥有{'lenceofline','buggy'}'collat​​z'作为一个输入。

例子:'lencefline'

例子:{'lenceofline','bugy'}

数据类型:char|细绳

显示选项,指定为其中一个值。选项可以以任何顺序出现。

选项 描述
'-ID' 请求消息ID,其中ID是字符向量。当返回一个结构时,输出也有ID字段,它是与消息相关联的ID。
'-完整路径' 假设输入文件名是绝对路径,这样校验码不要试图找到它们。
'-不好'

跑步校验码适用于所有线路文件名,即使是那些结尾的线校验码抑制指令,%#行

有关信息的信息%#行并抑制您程序中的消息,请参阅调整代码分析仪消息指示符和消息

'-CYC' 显示文件中每个函数的McCabe循环复杂度。通常,较低的复杂性值表示更易于理解和修改的程序。证据表明,复杂性值更高的程序更有可能包含错误。通常,您可以通过将其划分为更小,更简单的功能来降低功能的复杂性。有些人倡导分割具有10多个复杂性值的程序。
'-Modcyc' 显示文件中每个函数的修改的循环复杂度。除了一个差异之外,函数的改性循环复杂度等于McCabe循环复杂性。McCabe圈复杂性计数每个人案件在A中转变声明为1,而修改的循环复杂性计数整个转变声明为1.一般来说,转变陈述比嵌套更简单如果是 - else因此,修改的循环复杂度通常被认为是更好的代码复杂度。

'-config =.设置文件'

'-config = factory'

使用指定的设置文件覆盖默认活动设置文件。如果指定的文件不在当前文件夹中,请为文件提供完整路径。

有关创建设置文件的信息,请参阅保存和重用代码分析仪消息设置。如果指定文件,则校验码返回一条消息,指示它无法打开或读取您指定的文件。在这种情况下,校验码使用出厂默认设置。

要忽略所有设置文件并使用出厂默认首选项设置,请指定'-config = factory'

输出参数

全部收缩

消息信息,返回为aN.-经过-1结构阵列,在哪里N.是返回的消息数校验码命令。如果将多个文件名指定为输入,或者如果将单元数组指定为输入,信息包含一个单元结构阵列。

场地

描述

信息

描述代码分析所捕获的可疑构造的消息。

线

线号矢量,指示消息适用的文件的行。

柱子

两个列列数(列扩展名),指示消息适用的文件列。数组的第一列指定消息开始的编辑器中的列。数组的第二列指定消息结束的编辑器中的列。在双列数组中,每次发生消息都有一行。

消息信息,作为字符向量返回。如果将多个文件名指定为输入,或者如果将单元数组指定为输入,味精包含一个字符向量,其中每个文件的信息由10个等于符号字符,空格,文件名,空格和10个等号字符分隔。

例子:========== c:\ mymatlabfiles \ buggy.m ==========

文件的绝对路径,指定为字符向量的单元格数组。Matlab列出了FILEPATH以与指定的输入文件相同的顺序。

提示

强制代码分析仪忽略一行代码,使用%#行在线的末尾。您可以在标记后添加注释。

Unsupprated1 = 10%这条线将被捕获抑制2 = 20%#好的这条线不会被抓住抑制3 = 30%#确定这条线不会被抓住

在R2011B中介绍