使用Ansys Scade Suite将float32转换为char[255]



我正试图在Ansys Scade Suite中将float32转换为char[255]。我在这里使用一个自定义函数,它接受float32输入并输出一个255的字符数组。如下图所示。

#include <stdlib.h>
#include "kcg_types.h"
kcg_char OP_StringToFloat(
/* string/ */  const kcg_float *d
)
{
kcg_char a[255];
sprintf(a, "%f", d);
return a;
}

kcg_char是一个char。

由于某些原因,自定义函数使程序崩溃,留下无法追踪的系统错误(SYSERR)。有谁可以使用Scade Suite来帮助我吗?顺便说一句,这是基于模型的编程。下面是它们之间的联系。模型

您的数据类型和指针到处都是-并且您正在尝试返回对临时本地缓冲区的引用。建议习惯用法:

kcg_char* OP_StringToFloat( const kcg_float d, kcg_char* buffer )
{
srintf(buffer, "%f", d ) ;
return buffer;
}

示例调用:

kcg_char a[255] ;
kcg_float d = 3.125 ;
OP_StringToFloat( d, a ) ;

可以使用返回值作为调用的参数,例如:

printf( "%sn", OP_StringToFloat( d, a ) ) ;

注意,sprintf()调用只有在kcg_floatfloatdouble的别名时才有效。

最新更新