概述:
为了养成良好的代码风格,今天查看了QT官方的编程风格文档。
缩进:
用4空格缩进,tab全部设置为4个空格
变量定义:
- 1> 每个变量占用一行
// Wrong
int a, b;
char *c, *d;
// Correct
int height;
int width;
char *nameOfThis;
char *nameOfThat;
- 2> 避免无意义名字
// Wrong
int t;
// Correct
int time;
- 3> 单字符变量只用于循环计数和临时变量的场景
- 4> 变量使用时再定义,让变量定义与使用尽可能相邻,增加可读性
- 5> 变量和函数以小写字母开头,且名称中连续单词要以大写字母开头
qDebug()
- 6> 尽量避免缩写
// Wrong
short Cntr;
char ITEM_DELIM = ' ';
// Correct
short counter;
char itemDelimiter = ' ';
- 7> 类名总是以大写字母开头
QXmlStreamReader
空格:
- 1> 语句与语句之间只使用一个空行相隔
- 2> 在关键字与括号之间使用一个空格
// Wrong
if(foo)
{
}
// Correct
if (foo)
{
}
- 3> 符号’*’ 、’&’与类型之间相隔一个空格,与变量名之间不使用空格
char *x;
const QString &myString;
const char * const y = "hello";
- 4> 强制转换与表达式之间不使用空格,且不使用C风格的强制转换
// Wrong
char* blockOfMemory = (char* ) malloc(data.size());
// Correct
char *blockOfMemory = reinterpret_cast<char *>(malloc(data.size()));
- 5> 不要在一行书写多个表达式
// Wrong
count += 1; time += 1;
// Correct
count += 1;
time += 1;
- 6> 控制语句和表达式不要直接写在一行
// Wrong
if (foo) bar();
// Correct
if (foo)
{
bar();
}
圆括号:
- 1> 使用圆括号将复杂表达式组织起来,增加代码可读性
// Wrong
if (a && b || c)
// Correct
if ((a && b) || c)
// Wrong
a + b & c
// Correct
(a + b) & c
Switch语句:
- 1> Switch 和 Case、default单词对齐且相左顶格
switch (myEnum) {
case Value1: break;
case Value2: break;
case Value3: break;
default: beak;
}
- 2> 每一个Case都应该有break语句, 如果因为业务需求某一个Case不需要Break需要注释说明
switch (myEnum) {
case Value1:
doSomething();
break;
case Value2:
case Value3:
doSomethingElse();
// fall through
default:
defaultHandling();
break;
}
跳转语句:
- 1> 在不影响对称性和功能的时候减少else的使用
// Wrong
if (thisOrThat)
return;
else
somethingElse();
// Correct
if (thisOrThat)
return;
somethingElse();
换行:
- 1> 如果表达式占用多行,将操作符放在新行的开头
// Wrong
if (longExpression +
otherLongExpression +
otherOtherLongExpression)
{
}
// Correct
if (longExpression
+ otherLongExpression
+ otherOtherLongExpression)
{
}