C++入职学习篇--代码规范(持续更新)

一、头文件规范

在头文件中大家一般会定义宏、引入库函数、声明、定义全局变量等,在设计时最后进行分类,代码示范(自己瞎琢磨的,请多多指点):

#ifndef TEXT_H
#define TEXT_H
//------------------------------------------------
#include <string>
#include <stdio.h>
//------------------------------------------------
#include "picture,h"
#include "work.h"
//------------------------------------------------
//your code
//------------------------------------------------
#endif /* endif TEXT_H */

最好将宏定义、标准库、自定义库分开,这样更清晰、便于读者阅读

二、类定义规范

在定义类时public、private、protected都需要写出来,即使没有内容,代码示例:

class TText() //命名类以T开头
{
public:
//------------------------------------------------
//your code
String GetName(void);//命名对外函数用首字母大写
//------------------------------------------------
private:
//------------------------------------------------
//your code
String sname;//命名变量首字母为类型首字母
String _usr_path_name(String filename);//命名私有成员函数以_开头
//------------------------------------------------
protected:
//------------------------------------------------
//your code
//------------------------------------------------
};

三、部分注释为了整体代码规范,需要在必要的时候添加

如果在一个场景中引用的四个工具类A、B、C、D,其他分析均对其四个分别分析,但是有一种情况仅需对其一分析,那就需要用注释分析其他三种,为了就是代码美观与整体性好。代码示例:

bool isopen(mode type){
if(type == A->mode){
project->mode = A->mode;
return true;
} /*
if(type == B->mode){
project->mode = B->mode;
return true;
}*/ /*if(type == C->mode){
project->mode = C->mode;
return true;
}*/ /*if(type == D->mode){
project->mode = D->mode;
return true;
}*/ }

这样整体美观,便于读者分析

四、函数中代码规范

int textmain(char * filename) {
//----------------------------
int err;
char * buffer = new buffer[1024];
//----------------------------
FILE *pf;
pf = fopen(filename,"rb+");
//----------------------------
/* 注释的引用便于读者阅读,不用过多注释,但要有助于
理解程序段 */
//----------------------------
if(pf == NULL) {
cout<<"Open file fail"<<endl;
fcolse(pf);
err = -1;
}
//----------------------------
fcolse(pf);
//----------------------------
} //------------------------------------------------

五、关于结构体struct 枚举enum的命名

结构体(struct)

typedef struct{
char cname[100];
int inum;
bool Check;
}STRU_USER_NAME;

枚举(enum)

typedef enum{
EUN_ONE_ITEM = 0,EUN_TWO_ITEM,..,EUN_UNKNOW = 0xFFFF
}EM_USER_NAME;

六、定义宏

如果程序中多处出现相同程序段,可将这样的程序段定义为宏进行调用

eg:
#define M_CHECK_INPUT_VALUE_INT(input_value) \
if(input_value[0] == '\0' || !input_value){ \
ShowMessage("Input value is empty!");
turn -1;
} int main(){
const char a = "text";
M_CHECK_INPUT_VALUE_INT(input_value);
const char b = a;
cout<<"b:"<<b<<endl;
return 0 }

C++入职学习篇--代码规范(持续更新)的更多相关文章

  1. C++入职学习篇--新员工入职(持续更新)

    C++入职学习篇--新员工入职(持续更新) 本人菜鸟一枚,刚刚结束学业生涯,入职C++软件开发岗位,之前对C++一窍不通,刚刚入职,亚历山大,但为祖国和平发展,本人励志为中华崛起而奋斗,学不好C++誓 ...

  2. Python开发【第二十三篇】:持续更新中...

    Python开发[第二十三篇]:持续更新中...

  3. ESP8266开发之旅 进阶篇⑤ 代码规范 —— 像写文章一样优美

    1.前言     之前,一直在跟大伙分享怎么去玩蓝牙模块,怎么去玩wifi模块,怎么去玩json,然后有很多小伙伴就留言各种问题或者说直接怼他的代码过来让我看,然后我就一脸懵逼(代码中到处各种abcd ...

  4. [java开发篇][代码规范]

    http://www.hawstein.com/posts/google-java-style.html Google Java编程风格指南 January 20, 2014 作者:Hawstein出 ...

  5. 译 PrestaShop开发者指南 第二篇 代码规范

    原文:<http://doc.prestashop.com/display/PS15/Coding+Standards> 废话不多译了,讲重点. 代码风格验证工具:CodeSniffer( ...

  6. Go语言学习之路(持续更新中)

    菜鸟 Go语言教程 教程(RUNOOB.COM):http://www.runoob.com/go/go-tutorial.html Go全球官网:https://golang.org/ (2018- ...

  7. 北理工机器人队RM视觉组学习参考汇总(持续更新中)

    欢迎大家有意加入北理工机器人队参与到视觉组的工作中.在大家能够正式作为队员参与到视觉组的准备工作之前,北理机器人队需要对各位进行培训.这篇文章主要面向有志于参加机器人队视觉组的同学.同时,欢迎所有对相 ...

  8. 基于opencv和mfc的摄像头采集代码(GOMFCTemplate2)持续更新

            编写带界面的图像处理程序,选择opencv+mfc是一种很好的选择:在读取摄像头数据方面,网上的方法很多,其中shiqiyu的camerads的方法是较好的.       基于现有资料 ...

  9. 【java】Java相关学习参考链接(持续更新)

    How to do in java,https://howtodoinjava.com/,Java手册,分版本,并且有每个版本的新特性的详细解析. Java World,https://www.jav ...

随机推荐

  1. 在net中json序列化与反序列化 面向对象六大原则 (第一篇) 一步一步带你了解linq to Object 10分钟浅谈泛型协变与逆变

    在net中json序列化与反序列化   准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则 ...

  2. 使用引导扇区维护工具BOOTICE编辑系统启动列表BCD文件

    使用引导扇区维护工具BOOTICE编辑系统启动列表BCD文件 系列文章: 笔记本电脑提速之加装内存条.SSD固态硬盘.光驱位换SSD固态硬盘 笔记本ThinkPad E430c加装内存和SSD固态硬盘 ...

  3. JpGraph中文乱码问题解决

    JpGraph是一个PHP的图形类库,可以方便地生成各种柱状图,饼图,折线图等等,而且还可以方便地加文字.但是,中文的情况就稍微麻烦了一点.在JpGraph中默认是要把字符串转成utf8的,但是如果你 ...

  4. mac 下安装caffe(二)

    使用Anaconda Python 1.brew edit opencv args << "-DPYTHON_LIBRARY=#{py_lib}/libpython2.7.#{d ...

  5. JAVA设计模式之:訪问者模式

    訪问者模式: 一个作用于某对象结构中各元素的操作,使你能够在不改变各元素类数据结构的前提下添加作用于这些元素的新操作. 结构对象是訪问者模式必备条件.且这个结构对象必须存在遍历自身各个对象的方法. 适 ...

  6. luogu3379 【模板】最近公共祖先(LCA) Tarjan

    LCA的Tarjan算法是一个离线算法,复杂度$O(n+q)$. 我们知道Dfs搜索树时会形成一个搜索栈.搜索栈顶节点cur时,对于另外一个节点v,它们的LCA便是v到根节点的路径与搜索栈开始分叉的那 ...

  7. Codesys——TON和TOF的使用方法

    1. 引言 介绍延迟导通.延迟关闭函数的使用方法. 2. 函数描述 TON: 当IN为FALSE时,输出Q为FALSE: 当IN为由FALSE变为TRUE时,延迟导通过程中Q为FALSE,当时间到Q变 ...

  8. adb protocol failure【转】

    本文转载自:http://blog.csdn.net/hang2/article/details/45080769 今天遇见一个现象 在Nexus4上面部分adb功能失效, 可以 adb push 到 ...

  9. Anaconda 安装和使用Numpy、Scipy、pandas、Scikit-learn

    Anaconda 安装和使用 https://www.cnblogs.com/liruihuan/p/9101613.html 最近看了些关于数据分析的书,想系统的整理下相关知识,算是学习笔记吧,也希 ...

  10. vue项目打包之后首页白屏的问题

    本地的vue项目在server端浏览没问题,但是执行npm run build 打包之后在本地预览是白屏. 解决方法 1.路径问题 在config文件夹中找到index.js打开把assetsPubl ...