0%

C++代码风格

C++代码风格

具体的代码风格每个人都有不一样的理解,这里只放一些约定俗成的之类的东西

命名

不加前缀时:

eg.

1
2
int whatTheFuck;    //变量,驼峰式命名法
int WhatTheHell(); //函数,第一个单词就大写(帕斯卡命名法)

加前缀用匈牙利式:

eg.

1
int iWillMoYou;       //i是int的缩写

前缀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
1.整型的前缀
short sValue; //s为short的前缀
int iAge; //i为int的前缀
unsigned int uiAge; //ui为unsigned int的前缀(两个单词的首字母) //也有用u做前缀的
long lValue; //l为long的前缀

2.浮点型的前缀
float fScore; //f为float的前缀
double dValue; //d为double的前缀

3.字符型的前缀
char cChar; //c为char的前缀
TCHAR tcChar; //多字节字符和Unicode字符兼容类型的前缀tc wchar_t wcChar //宽字符前缀wc

4.字符串的前缀
char szName[30]; //sz为C语言字符串的前缀 string strName;
//str为C++字符串变量的前缀 CString strInfo;
//str为MFC字符串变量的前缀

5.布尔型的前缀
bool bPass; //b为bool的前缀

6.指针型的前缀
int *pValue; //p为指针的前缀,p后是否再加变量类型自己决定

7.数组的前缀
int arrNum[10]; //arr为数组的前缀,同上,arr后是否再加数组元素的数据类型前缀自己决定。

8.枚举变量的前缀
enum emWeek; //em为枚举变量的前缀

9.结构变量的前缀
T_NODE tNode; //结构名称以T_开头 10.字节变量的前缀:by BYTE byInfo;

10.字符指针的前缀
LPCTSTR ptszInfo; //ptsz表示前缀,t表示TCHAR类型 LPCSTR pszInfo; LPSTR pszInfo;

11.STL容器类型前缀
vector<int> vecValue; //vec表示vector容器的前缀

缩写

牛津英语缩写

韦氏词典中的缩写

注释

块注释

/* */不能嵌套


下面的有争议

using namespace std

STD里东西太多,用using namespace std有一定风险,可能会导致命名冲突,如STD里有search()函数。

可以通过把STD要用的东西分别写出来的方法,显式声明降低风险

eg.

1
2
3
4
5
6
7
8
9
10
11
12
using std::cin;
using std::cout;
using std::ios_base;
using std::max;
using std::memset;
using std::min;
using std::sort;
using std::sqrt;
using std::string;
using std::vector;
using std::endl;
...

复合类型声明

1
int * p;

*修饰的是p不是int

1
int* p1,p2;

上面的语句里只有p1是指针p2不是

两种写法

  1. int *p1;强调p1是指针
  2. int* p2;强调本次声明是复合类型声明