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 ...
随机推荐
- [LeetCode][Java] N-Queens II
题目: Follow up for N-Queens problem. Now, instead outputting board configurations, return the total n ...
- basename与dirname命令解析【转】
本文转载自:http://blog.csdn.net/choice_jj/article/details/8766335 basename命令 语法:basename string [suffix] ...
- java使用poi读取word(简单,简约,直观)
java使用poi读取word(简单,简约,直观) 说明 其实poi的官网上面都是有接口和样例的,只是都是英文 例如网址:http://poi.apache.org/spreadsheet/quick ...
- 【POJ 3784】 Running Median
[题目链接] http://poj.org/problem?id=3784 [算法] 对顶堆算法 要求动态维护中位数,我们可以将1-M/2(向下取整)小的数放在大根堆中,M/2+1-M小的数放在小根堆 ...
- bzoj2841
边双联通分量 具体详解蓝书上十分详细,因为必须是奇数个人坐在一起,那么一个人如果能选上,就必须处在一个简单奇圈中.而奇圈也是一个边双联通分量,所以我们先把边双联通分量都挖出来,然后进行二分图染色. 奇 ...
- astgo-官方提供的使用技巧大全
Astgo服务器相关: 1.Astgo支持双IP绑定,比如联通.电信IP,Astgo 默认SIP端口 5080和5061 菜单: 选项->系统设置 可以设置以上参数 2.支持RC4加密,自动判断 ...
- 关于C++ const 变量
const 的全局变量是储存在一个只读数据段中,虽然你可以定义一个指向它的指针,却会在运行时,在对该地址赋值的时候发生运行错误,而局部的const变量是储存在栈中的,离开作用域后同样会被释放,并且可以 ...
- Android -----listView的重要属性
android:transcriptMode="alwaysScroll" android:cacheColorHint="#00000000" android ...
- UNIX环境高级编程--8. 进程控制
进程控制进程标识: 每一个进程都有一个非负整型表示的唯一进程ID.虽然唯一,但是ID可以复用.当一个进程结束后,其进程ID会被延迟复用. ID=0的进程通常是调度进程,常被称作交换进程(s ...
- Android 在fragment中实现返回键单击提醒 双击退出
尝试用mvp架构加dagger2来重写了一下,大致功能都实现了,还没有全部完成. 项目地址 接近完成的时候,想在天气信息页面实现一个很常见的功能,也就是点击屏幕下方的返回键的时候不是返回到上一个act ...