• c++命名规范、代码规范和参数设置


    命名规范  

      在一个项目中,系统工程全部使用大写字母,尽量避免使用下划线,如果使用,要保证下划线两侧字母大小写一致,如PRE_PROCESS(预处理),如使用驼峰法命名,则不允许试用下划线,驼峰法指大小写字母结合的命名方法,首字母用大写,后面的用小写,如PreProcess

      命名时类型全部大写,对应的变量采用驼峰法命名,较好区分,比如

      IP_BASE IpBase;

      RUN_PARAM RunParam;

      CFG_PARAM CfgParam;

      这样就一目了然谁是类型谁是变量,项目中的规范数据类型(类似于系统参数)全部使用“大写字母+下划线”的方法命名.

      但是图像的命名方法有时例外,有时图像的命名表示特殊属性,所以前面的全部使用大写,但是不使用下划线,如

      Mat SVImg;

      Mat GRAYImg;

      Mat RGBImg;

      有时在变量名字前加上特定的小写字母表示特定的含义,如

      指针    pGRAYImg;

      向量    vGRAYImg;

      全局变量  gGRAYImg;

      枚举类型  eMatch;

      在定义枚举类型的时候要注意辨识度,比如简单的使用"ETYPE"来命名,当我需要声明枚举变量时,键盘上敲一个“E”会瞬间弹出来很多系统变量,不利于编程。所以可以命名为“E_IT_TYPES”,当大厨E_IT时就会直接弹出来了,里面的枚举类型也是同理。

      函数的形参一般在前面加上i,如iImg

    编码规范

      全局变量不可以和形参同名,否则会带来混淆,编程者难以确定全局变量是否改变,是个坑

    class demo{
    public:
        Rect iRect;
        void func(Rect iRect)
        {
            iRect.x=1;
            iRect.y=2;
        }      
    }

      全局变量实际上没有改变,但是容易带来混淆。

    if(flag==1)
    {}
    else

      如果少写个“=”,就会变成赋值,导致死循环,并且这个bug不好发现

    if(flag=1)
    {}
    else

      怎样修改代码才能使这个错误容易发现呢,将参数和常量反过来

    if(1==flag)
    {}
    else

      这样写错了的话就变成了1=flag,编译器就会直接报错了

      同样,在做函数封装时要写好保护,比如彩色图像转灰度图像之前要检查图像通道,获取图像时要检测图像是否为空,输入输出图像的大小是否一致,图像中像素点的阈值时候超过了255等等,并且每个保护都要用注释注明其目的。

      在调用函数时或者模块时,没吊用一个函数(模块)都要做消息处理,这样在debug时可以快速定位

      当一个类中既有函数又有成员变量时,且函数调用自己的成员变量,那么函数不需要设置形参,在函数里面直接调用就可以了。当为类的成员变量做封装时,将它们定义成私有类型,这样别人在调用类的时候就无法访问成员变量了,只能通过访问类的函数来使用这些成员变量,可以通过定义固定的接口函数,来限制外界对这些成员变量的操作,如get(),set(),UpdateRunParam(),接口函数定义成公有类。

    注释规范

      一页代码的头部要注明文件名称、功能描述、创建日期等信息,在函数模块前要注明功能描述,输入图元,输出图元,输入控制,输出控制。IP层要采用halcon式的注释

     

  • 相关阅读:
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 88怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 81.0怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 40怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 24.0怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下伺服驱动器报错 21.0怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下驱动器试运行提示过速度保护怎么办
    倍福TwinCAT(贝福Beckhoff)基础教程 松下驱动器如何执行绝对值清零
    倍福TwinCAT(贝福Beckhoff)基础教程 松下绝对值驱动器如何做初始化设置
    倍福TwinCAT(贝福Beckhoff)基础教程 松下官方软件开启报错伺服未就绪怎么办
    JAVA Eclipse 启动 Eclipse 弹出“Failed to load the JNI shared library jvm_dll”怎么办
  • 原文地址:https://www.cnblogs.com/wangtianning1223/p/13330401.html
Copyright © 2020-2023  润新知