C++入职学习篇--代码规范(持续更新)
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++入职学习篇--代码规范(持续更新)的更多相关文章
- C++入职学习篇--新员工入职(持续更新)
C++入职学习篇--新员工入职(持续更新) 本人菜鸟一枚,刚刚结束学业生涯,入职C++软件开发岗位,之前对C++一窍不通,刚刚入职,亚历山大,但为祖国和平发展,本人励志为中华崛起而奋斗,学不好C++誓 ...
- Python开发【第二十三篇】:持续更新中...
Python开发[第二十三篇]:持续更新中...
- ESP8266开发之旅 进阶篇⑤ 代码规范 —— 像写文章一样优美
1.前言 之前,一直在跟大伙分享怎么去玩蓝牙模块,怎么去玩wifi模块,怎么去玩json,然后有很多小伙伴就留言各种问题或者说直接怼他的代码过来让我看,然后我就一脸懵逼(代码中到处各种abcd ...
- [java开发篇][代码规范]
http://www.hawstein.com/posts/google-java-style.html Google Java编程风格指南 January 20, 2014 作者:Hawstein出 ...
- 译 PrestaShop开发者指南 第二篇 代码规范
原文:<http://doc.prestashop.com/display/PS15/Coding+Standards> 废话不多译了,讲重点. 代码风格验证工具:CodeSniffer( ...
- Go语言学习之路(持续更新中)
菜鸟 Go语言教程 教程(RUNOOB.COM):http://www.runoob.com/go/go-tutorial.html Go全球官网:https://golang.org/ (2018- ...
- 北理工机器人队RM视觉组学习参考汇总(持续更新中)
欢迎大家有意加入北理工机器人队参与到视觉组的工作中.在大家能够正式作为队员参与到视觉组的准备工作之前,北理机器人队需要对各位进行培训.这篇文章主要面向有志于参加机器人队视觉组的同学.同时,欢迎所有对相 ...
- 基于opencv和mfc的摄像头采集代码(GOMFCTemplate2)持续更新
编写带界面的图像处理程序,选择opencv+mfc是一种很好的选择:在读取摄像头数据方面,网上的方法很多,其中shiqiyu的camerads的方法是较好的. 基于现有资料 ...
- 【java】Java相关学习参考链接(持续更新)
How to do in java,https://howtodoinjava.com/,Java手册,分版本,并且有每个版本的新特性的详细解析. Java World,https://www.jav ...
随机推荐
- java文件和目录的增删复制
在使用java进行开发时常常会用到文件和目录的增删复制等方法.我写了一个小工具类.和大家分享,希望大家指正: package com.wangpeng.utill; import java.io.Fi ...
- Dynamics CRM Microsoft SQL Server 指定的数据库具有更高的版本号
在做NLB部署时遇到这么个问题,CRMAPP1安装的CRM版本号是6.1已经打了SP1补丁,而在CRMAPP2上的CRM安装包是6.0版本号.在选择连接现有部署后,最后一步检測就出了问题,例如以下图所 ...
- 2015南阳CCPC C - The Battle of Chibi DP树状数组优化
C - The Battle of Chibi Description Cao Cao made up a big army and was going to invade the whole Sou ...
- python 文档生成 字符串替换
替换 fnr, fnr_source, fnw = 'my.py.html', '产品清单.txt', 'my.py.res.html'd_source = {}with open(fnr_sourc ...
- android 之WebView
(一)使用中遇到的问题: 1.解决webview缓存: WebSettings.LOAD_NO_CACHE 或者直接清除缓存 webView.getSettings().setCatchMode( ...
- POJ2449 Remmarguts' Date 第K短路
POJ2449 比较裸的K短路问题 K短路听起来高大上 实际思路并不复杂 首先对终点t到其他所有点求最短路 即为dist[] 然后由起点s 根据当前走过的距离+dist[]进行A*搜索 第k次到达t即 ...
- MSP430:AD10
使用的MSP430G2553,为AD10,正常有8路输出,P1.0-P1.7为A0-A7 有七个寄存器, 参考电压可以是VCC或者内部参考电压1.5V或者2.5V 参考时钟可以是内部ADC10OSC ...
- scrapy xpath中提取多个class值
xpath中没有提供对class的原生查找方法.但是 stackoverflow 看到了一个很有才的回答: This selector should work but will be more eff ...
- 洛谷P1182数列分段
题目描述 对于给定的一个长度为N的正整数数列A[i],现要将其分成M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一数列4 2 4 5 1要分成3段 将其如下分段: [4 ...
- [Swift通天遁地]八、媒体与动画-(1)实现音频的播放和停止
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...