C\C++的编程规范

做一个有灵魂的Code猿

在这里插入图片描述

C和C++的编程中,编写代码不只是为了实现功能而写代码,写代码是软件实现功能,也是一种可维护、易于维护的工作,而且是一种艺术。
如果一个程序员写的代码只是为了实现功能,没有注释,代码变量的命名乱七八糟,除了自己能看懂,有的人写的代码自己过了一段时间也看不懂,对于后续代码软件功能的维护,不可行。这样的代码就是垃圾代码,哪怕你当时很快实现了这一功能需求。那么也只是废码。因为不易于后续别人的维护和可移植。
下面浅谈C和C++的基本编程规范。
1、首先实现代码需要.h和.c(或.cpp)文件,这是基本思想,有的编程规范不好的程序员,只要找到main函数,就在里面开始大做文章,搞得main函数不是mian函数,而是所有的功能都在mian函数里写。这样的程序不便于阅读。
那么我们该怎么写呢。接下来就做出常规的文件分类规范。

Circle.h

/*************************************************************************************************
* 文件名称:  Circle.h
* 版本:     V0.0.0
* 描述:     画圆功能实现的头文件
* 平台:     VS2019
* 编写时间:  2019.8.16
* 编写:     神奇的小强
* 更新日志:
**************************************************************************************************/
#pragma once
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;

class Circle
{/*注意花括号{另起一行*/
public:
       Circle(float x,float y ,float r);
       ~Circle();
protected:
 
private:
       Coordinate* m_pCenter;                /*圆心*/
       float m_iRadius;                      /*半径*/
};
void CircleMian();                           /*画圆这个功能的函数入口,非main*/

Circle.cpp

/*************************************************************************************************
* 文件名称:  Circle.cpp
* 版本:     V0.0.0
* 描述:     画圆功能实现的头文件
* 平台:     VS2019
* 编写时间:  2019.8.16
* 编写:     神奇的小强
* 更新日志:
**************************************************************************************************/
#include "Circle.h"

/*-----------------------------------------------------------------------------*
Function:       Circle()
Description:    构造函数
Calls:          
Data Accessed:
Data Updated:
Input:
Output:
Return:         
Others:
*------------------------------------------------------------------------------*/
Circle::Circle(float x, float y, float r)
{/*注意花括号{另起一行*/
 cout << "Circle(float x, float y, float r)" << endl;
 m_pCenter = new Coordinate(x, y);
 m_iRadius = r;
}

/*-----------------------------------------------------------------------------*
Function:       ~Circle()
Description:  析构函数
Calls:          
Data Accessed:
Data Updated:
Input:
Output:
Return:         0
Others:
*------------------------------------------------------------------------------*/
Circle::~Circle()
{/*注意花括号{另起一行*/
 cout << "~Circle()" << endl;
 delete m_pCenter;
 m_pCenter = NULL;
}

/*-----------------------------------------------------------------------------*
Function:       CircleMian
Description:  析构函数
Calls:          
Data Accessed:
Data Updated:
Input:
Output:
Return:         0
Others:
*------------------------------------------------------------------------------*/
void CircleMian()
{/*注意花括号{另起一行*/
      Circle* circlePointer = new Circle(2,4,5);
      /*画圆操作*/
      delete circlePointer ;
      circlePointer = NULL;
}


main.cpp

/*************************************************************************************************
* 文件名称:  main.cpp
* 版本:     V0.0.0
* 描述:     主函数文件
* 平台:     VS2019
* 编写时间:  2019.8.16
* 编写:     神奇的小强
* 更新日志:
**************************************************************************************************/
#include "Circle.h"
/*-----------------------------------------------------------------------------*
Function:       main
Description:    主函数
Calls:
Data Accessed:
Data Updated:
Input:
Output:
Return:
Others:
*------------------------------------------------------------------------------*/
int main(int argc, char** argv)
{/*注意花括号{另起一行*/
     CircleMian();                                                             /*调用画圆功能*/
     
     /*...........*/                                                           /*其他功能调用*/
     
     system("pause");
     return 0;
}

main函数用来调用其他函数,切记,满函数里不是实现任何功能。

2、在函数或基本定义中,命名函数、变量。不要以不明含义的i、j、k,a、b、c这样定义变量,不要以foo(),s()这样不明含义的名称定义函数名。

int i =0;                                                                     /*请问i代表什么????*/

void foo();                                                                   /*请问foo代表什么???*/

变量和函数要有明确含义的名称。
正规写法:

long long start_time;
long long end_time;
/*------------------------------------------------------------------------------------------------*
Function:      GetSystemTime
Description:   获取系统时间
Calls:
Data Accessed:
Data Updated:
Input:
Output:
Return:
Others:
*------------------------------------------------------------------------------------------------*/
int GetSystemTime(long long& sys_time)
{/*注意花括号{另起一行*/
    struct timeb system_time;
    ftime(&system_time);
    sys_time = 1000 * system_time.time +system_time.millitm;
    return 0;
}

3、变量的命名,变量的命名用英文,不会英文可以用(有道翻译、或谷歌翻译,不会没有什么的,大家手指伸出来有长短),命名请尽量不要缩写。采用驼峰式命名。

正规举例如下:

int  centerCoordinateX;                                                      /*圆心坐标x*/
int  centerCoordinateY;                                                      /*圆心坐标y*/
int  radius;                                                                 /*半径*/

4、结构体、共用体、枚举、类的定义
(1)结构体

typedef struct Phone
{ /*注意花括号{另起一行*/
    char  s_iBrand[128];                      /*注意变量前缀s_i表示结构体成员*/
    char  s_iName[128];
    int   s_iPrice;
}Phone;

(2)共用体

typedef union Data
{ /*注意花括号{另起一行*/
   int  u_iIntType;                          /*注意变量前缀u_i表示联合体成员*/
   float u_iFloatType;
}Data;

(3)枚举

typedef enum  OerationCode
{ /*注意花括号{另起一行*/
    e_iTurnUp =1,                            /*注意变量前缀e_i表示枚举成员*/
    e_iTurnDown,
    e_iTurnLeft,
    e_iTurnRight, 
}

(4)类class

class Phone
{/*注意花括号{另起一行*/
public:
    Phone();
    ~Phone();
    char c_iPhoneName[128];                 /*注意变量前缀c_i表示类成员*/
    int c_iPhonePrice;
protected:
private:
    int c_iRomSize;
    int c_iRamSize;
};

代码只要遵守上述4大点,写出来的代码别人一看就能懂,便于修改与维护,下期将会讨论函数指针、数组指针、指针数组与typedef。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇的小强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值