编码风格
优质
小牛编辑
155浏览
2023-12-01
语法
UTF-8
编码Unix
换行符,每行120
字符- 缩进符用
4
个空格,需要设定编辑器tab
转4
空格 - 花括号独占一行
- 函数与函数间使用一个空行分割
- 能使用静态内联(
static sw_inline
)就不要用宏 - 能用
enum
枚举就不要用宏 - 代码可读性比性能更重要
标签
label
必须以下划线开头,用于goto
语句label
必须独占一行
枚举
命名必须为sw{模块名称}_{作用}
,如:swServer_event_type
swServer
:表示枚举属于Server
模块_event_type
:表示属于事件类型,一般_type
表示这是一个类型,只存在一种状态。而flag
表示这是一个标志位,可以同时表达多种状态
C++
Class
类名必须为首字母大写,如Socket
、Coroutine
、System
NameSpace
命名空间必须为小写,如swoole::coroutine
、zend
Method
方法名和Property
属性,必须为小写,单词之间使用下划线(_
)分割,如set_timeout()
- 只使用
C++
提供的面向对象、STL
容器,不得使用智能指针等复杂的C++
特性,避免降低可读性
示例
int test()
{
for (i=0; i < 10; i++)
{
if (i == 3)
{
goto _return;
}
}
_return:
return 0;
}
变量命名
一些约定俗成的变量命名规范
- 需要保存的返回值一般为
int ret
或ssize_t ret
- 所有
zval
指针命名应以z
打头, 如zval *zobject
, 便于区分
类型使用
- 调用其他
C
函数时,参数类型与其函数声明保持一致 - 统一使用
uint16_t
,uint32_t
,uint64_t
,int32_t
等类型 - 不使用
unsigned
,long
,short
等类型
IDE 格式化
- 建议使用
Eclipse
- Eclipse 代码风格配置文件