代码书写规范
本文最后更新于 712 天前,如过您尝试失败,不出意外应该是出意外了。

变量

定义变量时往往会把变量的类型当作前缀加在变量上,这样做的好处是让用户一看到这个变量就知道该变量的类型。
比如char型变量的前缀是c,short型变量的前缀是s,long型变量的前缀是l,portBASE_TYPE类型变量的前缀是x。

还有其他的数据类型,比如数据结构、任务句柄、队列句柄等定义的变量名的前缀也是x。

如果一个变量是无符号型的,那么会有一个前缀u,如果是一个指针变量,则会有一个前缀p。

因此,当我们定义一个无符号的char型变量时会加一个uc前缀,当定义一个char型的指针变量时会加一个pc前缀。

函数名

函数名包含了函数返回值的类型、函数所在的文件名和函数的功能,如果是私有的函数,则会加一个prv(private)的前缀。特别地,在函数名中加入了函数所在的文件名,这将帮助用户提高寻找函数定义的效率并了解函数作用,具体举例如下:

  1. vTaskPrioritySet()函数的返回值为void型,在task.c文件中定义。
  2. xQueueReceive()函数的返回值为portBASE_TYPE型,在queue.c文件中定义。
  3. vSemaphoreCreateBinary()函数的返回值为void型,在semphr.h文件中定义。

宏均由大写字母表示,并配有小写字母的前缀,前缀用于表示该
宏在哪个头文件定义,部分举例具体如下表所示。

前缀宏定义的文件
port(举例, portMAX_DALAY)portable.h
task(举例, taskENTER_CRITICAL())task.h
pd(举例, pdTRUE)projedefs.h
config(举例, configUSE_PREEMPTION)FreeRTOSConfig.h
port(举例, enQUEUE_FULL)projdefs.h
FreeRTOS宏定义举例

这里要注意的是信号量的函数都是一个宏定义,但是其函数的命名方法是遵循函数的命名方法而不是宏定义的方法。

在贯穿FreeRTOS的整个代码中,还有几个通用的宏定义也要注意一下,都是表示0和1的宏,具体下表所示。

实际的值
pdTRUE1
pdTRUE0
pdPASS1
pdFAIL0
FreeRTOS通用宏定义
版权声明:本文为1ris原创,依据CC BY-SA 4.0许可证进行授权,转载请附上出处链接及本声明。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇