未知的输出类型code .ceval
问题
你会看到这个错误信息:
'coder的输出。Ceval '类型未知。外围表达式不能求值。通过分配'coder的输出来指定输出类型。到一个已知类型的变量。
导致
类的输出类型时发生此错误消息coder.ceval
调用。
解决方案
用预期的输出类型初始化一个临时变量。的输出赋值coder.ceval
对这个变量。
例子
假设你有一个C函数叫做cFunctionThatReturnsDouble
.您希望为函数生成C库代码喷火
.的返回类型,代码生成器将返回错误消息coder.ceval
.
函数喷火% # codegencallFunction (coder.ceval (“cFunctionThatReturnsDouble”));结束函数callFunction (~)结束
要修复此错误,请使用临时变量定义C函数输出的类型。
函数喷火% # codegenTemp = 0;Temp = code .ceval(“cFunctionThatReturnsDouble”);callFunction(临时);结束函数callFunction (~)结束
你也可以使用coder.opaque
初始化临时变量。
使用类的示例
假设您有一个自定义类集
方法。这个类使用集
方法来确保对象属性值落在一定范围内。
classdefclassWithSetter属性expectedResult = []结束属性(常量)scalingFactor = 0.001结束方法函数obj = set.expectedResult(obj,erIn)如果erIn >= 0 && erIn <= 100 erIn = erIn.*obj.scalingFactor;obj。expectedResult = erIn;其他的obj。expectedResult = NaN;结束结束结束结束
当为函数生成C库代码时喷火
,代码生成器产生错误消息。的输入类型集
方法无法确定。
函数喷火% # codegenobj = classWithSetter;obj。expectedResult = code .ceval(“cFunctionThatReturnsDouble”);结束
若要修复此错误,请初始化一个具有已知类型的临时变量。对于本例,使用一种类型的标量double。
函数喷火% # codegenobj = classWithSetter;Temp = 0;Temp = code .ceval(“cFunctionThatReturnsDouble”);obj。expectedResult = temp;结束