summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremlslxl <[email protected]>2018-03-06 11:46:53 +0800
committeremlslxl <[email protected]>2018-03-06 11:46:53 +0800
commit417ecef5ce5e75097362052f2c2bedc374f28f42 (patch)
tree8a079146c1c5eb202fc74eb3965066d9ee037d04
parent8f2588d609b01a59ee4ea8fba6e01a07f49182e5 (diff)
添加astyle工具的配置语句,格式化时可以实现宏定义的块缩进。
更改省略号为英文状态下的... 统一文件编码格式统一为UTF-8
-rw-r--r--documentation/coding_style_cn.md5
-rw-r--r--documentation/coding_style_en.txt149
2 files changed, 78 insertions, 76 deletions
diff --git a/documentation/coding_style_cn.md b/documentation/coding_style_cn.md
index fdb49789f7..0aff3cb543 100644
--- a/documentation/coding_style_cn.md
+++ b/documentation/coding_style_cn.md
@@ -59,7 +59,7 @@ C语言头文件为了避免多次重复包含,需要定义一个符号。这�
* Date Author Notes
* 2006-03-18 Bernard the first version
* 2006-04-26 Bernard add semaphore APIs
- * …
+ * ...
*/
```
@@ -125,7 +125,7 @@ C语言头文件为了避免多次重复包含,需要定义一个符号。这�
行都采用缩进的方式,例如:
```c
- if (condition)
+ if (condition)
{
/* others */
}
@@ -237,6 +237,7 @@ rt_timer + 动词短语的形式表示能够应用于 timer 对象的方法。
参数:--style=allman
--indent=spaces=4
+ --indent-preproc-block
--pad-oper
--pad-header
--unpad-paren
diff --git a/documentation/coding_style_en.txt b/documentation/coding_style_en.txt
index e5dad02404..dd321c1774 100644
--- a/documentation/coding_style_en.txt
+++ b/documentation/coding_style_en.txt
@@ -27,10 +27,10 @@ collision, do not use general names or the names that are frequently used.
To avoid include the same header file for multiple times, you need to define a
symbol like this:
- #ifndef __FILE_H__
- #define __FILE_H__
- /* header file content */
- #endif
+ #ifndef __FILE_H__
+ #define __FILE_H__
+ /* header file content */
+ #endif
The symbol should begin and end with "__" to avoid naming collision. The words
of the file name should be connected by "_".
@@ -41,32 +41,32 @@ of the file name should be connected by "_".
In every header file, there should be copyright information and Change Log
record like this:
- /*
- * File : rtthread.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006, RT-Thread Development Team
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE.
- *
- * Change Logs:
- * Date Author Notes
- * 2006-03-18 Bernard the first version
- * 2006-04-26 Bernard add semaphore APIs
- * …
- */
+ /*
+ * File : rtthread.h
+ * This file is part of RT-Thread RTOS
+ * COPYRIGHT (C) 2006, RT-Thread Development Team
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rt-thread.org/license/LICENSE.
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2006-03-18 Bernard the first version
+ * 2006-04-26 Bernard add semaphore APIs
+ * ...
+ */
5. Structure Defines
Please name structures in lower-case and connect words with "_". For example:
- struct rt_list_node
- {
- struct rt_list_node *next;
- struct rt_list_node *prev;
- };
+ struct rt_list_node
+ {
+ struct rt_list_node *next;
+ struct rt_list_node *prev;
+ };
Braces should have their own lines and the members should be defines with
indent.
@@ -74,13 +74,13 @@ indent.
The names of type defines such like structure types should be the structure name
plus "_t". For example:
- typedef struct rt_list_node rt_list_t;
+ typedef struct rt_list_node rt_list_t;
In order to be easily referenced, the types of objects in kernel is pointer. For
example:
- typedef struct rt_timer* rt_timer_t;
+ typedef struct rt_timer* rt_timer_t;
6. Micros
@@ -88,7 +88,7 @@ example:
In RT-Thread, please use upper-case names for micro definitions. Words are
connected by "_". Like:
- #define RT_TRUE 1
+ #define RT_TRUE 1
7. Function Naming and Declaration
@@ -97,7 +97,7 @@ Please name functions in lower-case and separate words with "_". API provided to
upper application should be declared in header files. If the function don't have
parameters, it should be declared as void:
- rt_thread_t rt_thread_self(void);
+ rt_thread_t rt_thread_self(void);
8. Commenting
@@ -113,19 +113,19 @@ or right of them. Anther places are illegal.
Please use TAB or 4 spaces to indent. It's preferred to use 4 spaces. If no
other special meanings, the indent should begin right after "{":
- if (condition)
- {
- /* others */
- }
+ if (condition)
+ {
+ /* others */
+ }
The only one exception is switch. In switch-case statements, "case" should be
aligned with "switch":
- switch (value)
- {
- case value1:
- break;
- }
+ switch (value)
+ {
+ case value1:
+ break;
+ }
"case" is aligned with "switch", the following code block should be indented.
@@ -135,10 +135,10 @@ aligned with "switch":
For ease of reading, it is advised that braces should occupy the whole line
instead of following other statements. Like:
- if (condition)
- {
- /* others */
- }
+ if (condition)
+ {
+ /* others */
+ }
When matching braces have their own lines, the reader would identify the code
blocks easily.
@@ -146,23 +146,23 @@ blocks easily.
There should be a space before parentheses when it's not a function call. For
example:
- if (x <= y)
- {
- /* others */
- }
+ if (x <= y)
+ {
+ /* others */
+ }
- for (index = 0; index < MAX_NUMBER; index ++)
- {
- /* others */
- }
+ for (index = 0; index < MAX_NUMBER; index ++)
+ {
+ /* others */
+ }
In expressions, there should be a space between most binary and ternary
operators and the strings. No spaces around(inside) parentheses, like:
- if ( x <= y )
- {
- /* other */
- }
+ if ( x <= y )
+ {
+ /* other */
+ }
This is a bad practice.
@@ -195,22 +195,22 @@ The kernel of RT-Thread uses object-oriented tech in C. The naming convention
is: structure names are the object names, object names + verb phrases are the
method names of objects:
- struct rt_timer
- {
- struct rt_object parent;
- /* other fields */
- };
- typedef struct rt_timer* rt_timer_t;
+ struct rt_timer
+ {
+ struct rt_object parent;
+ /* other fields */
+ };
+ typedef struct rt_timer* rt_timer_t;
The definition of structure rt_timer stands for the object definition of timer
object.
- rt_timer_t rt_timer_create(const char* name,
- void (*timeout)(void* parameter), void* parameter,
- rt_tick_t time, rt_uint8_t flag);
- rt_err_t rt_timer_delete(rt_timer_t timer);
- rt_err_t rt_timer_start(rt_timer_t timer);
- rt_err_t rt_timer_stop(rt_timer_t timer);
+ rt_timer_t rt_timer_create(const char* name,
+ void (*timeout)(void* parameter), void* parameter,
+ rt_tick_t time, rt_uint8_t flag);
+ rt_err_t rt_timer_delete(rt_timer_t timer);
+ rt_err_t rt_timer_start(rt_timer_t timer);
+ rt_err_t rt_timer_stop(rt_timer_t timer);
rt_timer + verb phrase stands for the method that could be used on timer object.
@@ -219,13 +219,14 @@ object could be created or it could only created dynamically on heap.
14. Use astyle to format the code automatically
parameters: --style=allman
- --indent=spaces=4
- --pad-oper
- --pad-header
- --unpad-paren
- --suffix=none
- --align-pointer=name
- --lineend=linux
- --convert-tabs
- --verbose
+ --indent=spaces=4
+ --indent-preproc-block
+ --pad-oper
+ --pad-header
+ --unpad-paren
+ --suffix=none
+ --align-pointer=name
+ --lineend=linux
+ --convert-tabs
+ --verbose