主要内容

将函数调用转换为常量

这个例子展示了如何在生成的代码中使用coder.const。代码生成器将表达式或函数调用折叠到coder.const语句转换为生成的代码中的常数。因为生成的代码不必每次都求表达式或调用函数,所以这种优化减少了生成代码的执行时间。

写一个函数AddShift它需要输入转变然后把它加到向量的元素上。向量由前10个自然数的平方组成。AddShift生成这个向量。

函数y = AddShift(转变)% # codegeny =(1:10)。^ 2 +转变;

生成的代码AddShift使用codegen命令。打开代码生成报告。

codegen配置:自由-launchreportAddShiftarg游戏0

代码生成器生成用于创建向量的代码。它增加了转变向量创建过程中的每个元素。的定义AddShift生成的代码如下:

void AddShift(double Shift, double y[10]) {int k;For (k = 0;k < 10;k + +) {y [k] = (double) ((1 + k) * (1 + k)) +转变;}}

替换表达式(1:10)。^ 2coder.const((1:10) ^ 2)。,然后生成AddShift再次使用codegen命令。打开代码生成报告。

codegen配置:自由-launchreportAddShiftarg游戏0

代码生成器创建包含前10个自然数的平方的向量。在生成的代码中,它添加了转变对于这个向量的每个元素。的定义AddShift生成的代码如下:

void AddShift(double Shift, double y[10]) {int i;Static const signed char iv[10] = {1, 4, 9, 16, 25, 36, 49, 64, 81, 100};For (i = 0;我< 10;i++) {y[i] = (double)iv[i] + Shift;}}

另请参阅

相关的话题