knowledge:3d_print:2023052301
这是本文档旧的修订版!
编码标准
当你在写与 Marlin 相关的代码时,请遵循以下规范。提交的代码若不接近当前的代码风格,那么会被要求更改。你的代码审核人员应该指出哪里需要被更改。
编码风格
缩进
缩进对于可读性与可维护性起着至关重要的作用,并且能让一些普通文本编辑器(TextMate,Sublime 等)正确地按照代码层级折叠代码。
- 使用两个空格作为缩进,注意不要使用
<tab>
键,<tab>
会将你拉入无尽的深渊。 - 使用所有的块元素包括
#if
及其他的预处理语句应该增加它的缩进:void myFunction() { if (myCondition == 0) { #ifdef PETER_PARKER slingWeb(100); #else findPhoneBooth(); #endif } }
括号风格
Marlin 使用的括号风格有以下目的:
- 在开始行的末尾显示已折叠的代码块:
{ (…)
- 保证代码的连续性以及形成统一的代码风格
- 使在屏幕上显示代码的行数最大化
倘若垂直的缩进空格让代码的可读性更强,那么增加一个空行比使用不同的括号风格更好:
- 来源于古老的“一个真正的括号风格”
- 在行末写一个左括号:
if (a == 1) {
- 同样地,对于声明语句:
void pizza(int slices) {
- 同缩进的右括号保持垂直
“一个真正的括号风格”例子:
void my_function(void) { if (...) { ... } else { ... } switch (val) { case 1: SERIAL_CHAR('Q'); break; case 2: SERIAL_CHAR('T'); break; } }
空格
- 在控制关键字后加一个空格:
if (…)
,while (…)
,do {…} while(…)
,switch (…)
等等。 - 像
sizeof()
这种类函数就不用加括号了。 - 函数名与其参数之间不用加空格:
val = myFunction(…);
.
和→
操作符左右不用加空格:the_place = state→parks[echo];
。- 类型转换函数后不用加空格:
old_state = (int)state;
。 - 大多数二元及三元操作符要加空格:'myVar = aVar + bVar * cVar;
knowledge/3d_print/2023052301.1684842173.txt · 最后更改: 2023/06/07 04:09 (外部编辑)