string - 是否可以定义一个返回文本字符串的 CAPL 函数?

标签 string syntax capl

我在 Vector CANoe 中开发 CAPL 脚本,我需要定义几个返回文本字符串的函数。在 C 语言中,我会写这样的东西:

char * ErrorCodeToMsg(int code)

char [] ErrorCodeToMsg(int code)

在 CAPL 中,两个定义都会失败并出现解析错误。到目前为止我想出的唯一可行的解​​决方案是:

variables {
  char retval[256];
}

void ErrorCodeToMsg(int code) {
  char [] msg = "Hello word";
  strncpy(retval, msg, 256);
}

当然,这非常难看,因为每次调用 ErrorCodeToMsg 都需要两条语句而不是一条。有更好的办法吗?

最佳答案

您必须像使用基于字符串的函数一样执行此操作:

 void ErrorCodeToMsg(char buffer[], int code){
 buffer = myListOfCodes[code];
 }

该值将使用其引用值存储在缓冲区中。 Capl 中不可能返回字符串。这就是为什么您无法使用 @ 选择器访问字符串系统变量。

关于string - 是否可以定义一个返回文本字符串的 CAPL 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30932794/

相关文章:

python - 完整的 Python 标点符号集(不仅仅是 ASCII)

c# - 使用 contains 搜索 linq 关键字

javascript - 如何确定数字在字符串中的位置

python - 如果else语句拒绝工作,则一行

c - 如何在 CAPL 中包含 .dll 文件?

CAPL 写入文本文件

C++ - 截断变量文件名中 double 的小数位

javascript - 有没有关于 Google App Maker 语法的正式文档?

MySQL语法错误,无法找出问题所在

CAPL 类型定义 bool