liqi9155159 2023-06-23 00:46 采纳率: 25%
浏览 13
已结题

在企业写代码时,建立函数时都要进行参数验证么?

今天写matlab代码,单步跟踪,步入matlab自带的函数里面。发现前面很多行都是进行参数验证。而且matlab自带了好几个函数和 类, 专门作参数验证用的。比如检验函数的输入参数数量是否符合要求?输入参数的数据类型对不对?

因为我没在企业写过代码。想请教业内在写企业级代码时是否有规范,所有编写的函数都要进行参数验证?C或C++是否有自带的专门用于参数验证的官方函数?一般在什么情况下企业允许编写的函数不需要进行参数验证?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-23 02:04
    关注
    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7573477
    • 除此之外, 这篇博客: matlab代码移植C语言中的 3、创建一个函数,说明函数输入参数的类型 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 此处命名为enter.m

      clear all;
      clc;
      close all;
      
      %下面是输入参数的样例
      a = [0.1 0.2 0.3 0.4];
      b = [0.1 0.2 0.3 0.4];
      %上面是输入参数的样例
      %下面是函数的调用
      [d]=example(a,b);
    • 以下回答由chatgpt基于相关博客总结生成:

      回答:在企业编写代码时,通常都需要进行参数验证。参数验证可以确保代码的正确性和安全性,避免不必要的错误。在Matlab中,自带参数验证的函数和类也说明了其重要性。在C或C++中没有自带的专门用于参数验证的官方函数,但可以使用第三方库或自己编写参数验证代码。对于企业允许编写的函数不需要进行参数验证的情况,这主要取决于企业自身的规定和具体情况,但一般来说,涉及到安全和正确性问题的代码都需要进行参数验证。

      具体实现方案: 1. 自行编写参数验证代码:在函数内部增加参数验证代码,验证输入参数的数量和数据类型是否符合要求,以保证代码的正确性和安全性。例如,可以使用if语句判断输入参数的数量和类型,并在不符合要求的情况下给出相应的提示或报错信息。

      示例代码:

      void myFunction(int a, float b, char c){
          if(sizeof(a) != 4 || sizeof(b) != 4 || sizeof(c) != 1){
              printf("Error: input parameters size or type mismatch!");
          }
          // rest of the function code
      }
      
      1. 使用第三方库:可以使用第三方库,如boost库、Qt库中自带的参数验证功能,来进行参数验证。这些库通常提供了丰富的参数验证方法和工具,可以大大简化参数验证的过程。

      示例代码:

      #include <boost/lexical_cast.hpp>
      #include <boost/algorithm/string.hpp>
      
      void myFunction(const std::string& arg1, const std::string& arg2){
          int intArg1 = boost::lexical_cast<int>(arg1);
          float floatArg2 = boost::lexical_cast<float>(arg2);
      
          if(arg1.empty() || arg2.empty()){
              throw std::runtime_error("Empty argument!");
          }
      
          if(!boost::algorithm::all(arg1, boost::algorithm::is_digit())){
              throw std::runtime_error("Invalid argument format!");
          }
      
          // rest of the function code
      }
      
      1. 企业允许编写的函数不需要进行参数验证的情况:如果某个函数的输入参数已经在程序其他地方经过了合法性验证,或者输入参数的正确性并不影响程序运行,则该情况下企业可能允许编写的函数不需要进行参数验证。但是,这需要根据具体情况来判断,如果该函数涉及到安全和正确性问题,建议还是进行参数验证。
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月2日
  • 创建了问题 6月23日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题