CAPL脚本要注意区分elcount和strlen求数组长度的区别,不然要吃大亏

Posted 蚂蚁小兵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CAPL脚本要注意区分elcount和strlen求数组长度的区别,不然要吃大亏相关的知识,希望对你有一定的参考价值。


🍅 elcount和 strlen比较

  • elcount : 计算Byte数组或者char型数组的定义时的大小,无论定义时数组是否被填充
  • strlen :返回char型数组的实际被填充字符的大小,无法用于计算byte型数组
on key 'a'

  char test_1[200];
  char test_2[200] = "hello world!";
  
  
  write("elcount >>>>>>> test_1 : %d ; test_2 : %d",elcount(test_1),elcount(test_2));
  
  write("strlen  >>>>>>> test_1 : %d ; test_2 : %d",strlen(test_1),strlen(test_2));
  

输出:

Program / Model	elcount >>>>>>> test_1 : 200 ; test_2 : 200
Program / Model	strlen  >>>>>>> test_1 : 0 ; test_2 : 12

🍅 strlen需要注意的点

char test_3[5] = "1234";  //正确定义
char test_3[4] = "1234";  //错误的,capl不报错,会有warning,会自动cut掉4,实际存储的时“123”

🍅 elcount需要注意的点

  • 如果数组是二维数组,则elcount(arrary)只返回一维数组的大小,如果需要获取二维数组大小,需要elcount(arrary[0])
on key 'a'
 
  byte test_3[2][10];  
  write("一维数组大小:%d ;二维数组大小 :%d",elcount(test_3),elcount(test_3[0]));  

输出:
Program / Model 一维数组大小:2 ;二维数组大小 :10

🌎总结

  • 🚩要有最朴素的生活,最遥远的梦想,即使明天天寒地冻,路遥马亡!

  • 🚩如果这篇博客对你有帮助,请 “点赞” “评论”“收藏”一键三连 哦!码字不易,大家的支持就是我坚持下去的动力。

以上是关于CAPL脚本要注意区分elcount和strlen求数组长度的区别,不然要吃大亏的主要内容,如果未能解决你的问题,请参考以下文章

CANoe CAPL文件操作目录合集

CAPL 脚本对.ini 配置文件的高阶操作

CAPL脚本中关于 局部变量 容易忽略的一点

基于CAPL脚本,造一个分割字符串的轮子

CAPL脚本中 getSignal和 setSignal 函数的封装,看完本节足够适应所有测试场景

CAPL 脚本中对信号,系统变量,环境变量的 事件响应