主要内容

防止代码生成未使用的执行路径

如果变量控制流量:如果,elseif,else声明,或者切换,案例,否则声明,将其声明为常量,以便仅对语句的一个分支进行代码生成。

根据控制流量变量的性质,您可以通过两种方式声明它作为常量:

局部变量控制流程时防止代码生成

  1. 定义功能方形途电图占用输入变量,以及基于选择变量的COMPESS,CH., 设定为S.或者C

    功能Out = Simeorcube(CH,IN)%#codegen.如果Ch ==.'出局=。^ 2;eleesifCh ==.'C'出局=。^ 3;别的出= 0;结尾
  2. 生成代码方形途电图使用Codegen.命令:

    Codegen.-config:lib方形途电图-  args.{'s',Zeros(2,2)}

    基于输入的输入,生成的C代码正方形或二维矩阵的元素CH.

  3. 将以下行添加到定义方形途电图

    ch =';

    生成的C代码为2×2矩阵的元素平衡。选择变量,CH.,以及其他分支机构如果/ elseif /如果语句不会出现在生成的代码中。

输入变量控制流程时防止代码生成

  1. 定义功能Mathfunc.,它对输入执行不同的数学操作,,取决于输入的值,旗帜

    功能out = mathfunc(标志,in)%#codegen.%#codegen.转变旗帜案件1出=罪(IN);案件2出= cos(in);除此以外出局= sqrt(in);结尾
  2. 生成代码Mathfunc.使用Codegen.命令:

    Codegen.-config:libMathfunc.-  args.{1,零(2,2)}

    生成的C代码基于输入的输入对2×2矩阵的元素执行不同的数学操作旗帜

  3. 生成代码Mathfunc.,声明论点,旗帜,作为常数使用编码器.Constant.

    Codegen.-config:libMathfunc.-  args.{编码器.Constant(1),零(2,2)}

    生成的C代码找到了2×2矩阵的元素的正弦。变量,旗帜,而且开关/案例/否则语句不会出现在生成的代码中。

相关话题