zoukankan      html  css  js  c++  java
  • C编程规范

    C编程规范

    一、命名

    1、程序文件命名:程序文件命名要求具备模块缩写,功能描述等信息。采用每个单词首字母大写方式。

    exzamp: Driver.c  FontManage.c
    

    2、函数命名

    DataManageValueSet(int iValue);
    

    3、结构体命名

    typedef struct   _ST_DISP_WALL_INFO	
    {
        char szName[16];
        int iRow;
        int iColumn;
    }ST_DISP_WALL_INFO, *PST_DISP_WALL_INFO;	// “ST”或者“PST”(指针类型)作为前缀
    

    4、联合体命名

    typedef struct  _UN_DISP_WALL_INFO	
    {
        char szName[16];
        int iRow;
        int iColumn;
    }UN_DISP_WALL_INFO, *PUN_DISP_WALL_INFO;	// “UN”或者“PUN”(指针类型)作为前缀
    

    5、变量命名:采用第一个单词首字母小写,后续首字母大写

    6、宏命名

    define PIE 3.14 //宏定义

    define STRING_LENGTH 100+1 //危险

    define STRING_LENGTH (100+1) //好

    【规则1】静态变量加前缀s_(表示static),同时要求带数据类型 。 exzample: s_iNum;
    【规则2】全局态变量加前缀g_(表示global),同时要求带数据类型。 exzample: g_iNum;
    【规则3】所有宏定义、枚举常数和const变量全部使用大写的字母,用下划线分割单词
    【规则4】变量名由单词组合而成, 具备该变量特征信息。

    二、命名缩写

    [重要] : https://www.cnblogs.com/huninglei/p/5497148.html

    三、C++相关规范(待补充)

    C++风格

    class CSerialComm //C:这是类 类名:串口通信  
    {	
    public:
    	int 		m_iNum;  //类的成员变量
    	bool 		m_bSatus;
    	HADNLE 		m_hFile;
    	static int 	m_s_iCout; //类的静态成员变量
    };
    

    驱动层编程风格(下划线大行其道)

    文件命名: font.c key_manage.c wifi_config.h
    全局变量命名: g_write_value;
    局部变量命名: i_write_value、ivalue、value(不加g修饰默认都是局部)
    函数定义: writee_byte();

    四、注释

    版权声明

    //中文版权声明
    /***************************************************************************
    * Copyright (c) 2018, USMART, All rights reserved.
    * 
    * 文件名称:文件名称
    * 摘    要:简要描述本文件的内容
    * 作    者:作者名字
    *
    * 修改记录:
    *[日期][作者/修改者] [修改原因]
    ***************************************************************************/
    
    
    //英文版权声明
    /****************************************************************************
    * Copyright (c) 2018, USMART, All rights reserved.
    *
    * FileName   : xxx.h
    * Description: xxxxxx.
    * Author     : xxxxxx(xxx@deltaww.com.cn)
    * Date       : 2018/09/27
    * Version    : 1.0
    *
    * Change Logs:
    *   2018/09/27 xxxxxx : Create file.
    ****************************************************************************/
    
    

    函数注释

    /***************************************************************************
    * Function   : ModbusTcpRecvMsg
    * Description: read data by ModbusTcp protocol
    * Parameter  :
    *              [Input  Parameter]
    *             		iFd            @Socket file handle                
    *              [Output Parameter]
    *             		pucRsp         @Response data from slave
    * Return     :      
                     iMsgLength      @the total len of Response data
    * Change Logs:
    *           2018/11/22  jiangfeng.zhang :add comment
    *           2018/11/23  jiangfeng.zhang :corrects printf bug in 383 Line  
    ***************************************************************************/
    
    int ModbusTcpRecvMsg(int iDevFd,unsigned char *pucRsp)
    
  • 相关阅读:
    Zookeeper概念学习系列之分布式事务
    序列化 反序列化 输入流 输出流
    dfs常见的配置文件中的value与description(重要)
    [转]SQL Server Reporting Services
    [转]webpack4.0.1安装问题和webpack.config.js的配置变化
    [转]Vue.js 入门教程
    [转]Webpack 入门教程
    [转]使用C#调用cmd来执行sql脚本
    [转]winform利用读取xml获取webconfig
    [转]bootstrap栅格系统的属性及使用
  • 原文地址:https://www.cnblogs.com/retry/p/10146680.html
Copyright © 2011-2022 走看看