命名约定

博客主要讨论程序开发中的命名约定。强调使用完整英文描述符,采用领域术语,大小写混合提高可读性,少用缩写且保持一致,避免长名字、相似名字及以下划线为首末字母的名字,以提升代码的可理解性、可维护性和可改进性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

test:命名约定


我们将在整个标准中讨论命名约定,所以让我们先讨论几个基本点:

使用可以准确说明变量/字段/类的完整的英文描述符。例如,采用类似 firstName,grandTotal 或 CorporateCustomer 这样的名字。虽然象 x1,y1 或 fn 这样的名字很简短,输入起来容易,但是我们难以知道它们代表什么、结果是什么含义,因而使代码难以理解、维护和改进。
采用该领域的术语。如果用户称他们的“客户” (clients) 为“顾客” (customers),那么就采用术语 Customer 来命名这个类,而不用 Client。许多程序开发者会犯的一个错误是,不去使用工业或领域里已经存在着很完美的术语时,却生造出一些普通词汇。
采用大小写混合,提高名字的可读性。一般应该采用小写字母,但是类和接口的名字的首字母,以及任何中间单词的首字母应该大写 [KAN97]。
尽量少用缩写,但如果一定要使用,就要谨慎地使用。这意味着应该保留一个标准缩写的列表,明智地从中选取,并且在使用时保持一致。例如,想对单词“number”采用缩写,那么可从 nbr,no 或者 num 中选取一个,说明一下采用了哪一个(具体是哪个倒无所谓),并且只使用这一种形式。
避免使用长名字(最好不超过 15 个字母)。 虽然 PhysicalOrVirtualProductOrService 看起来似乎是个不错的类名,但是这个名字太长了,应该考虑重新给它起个短一点的名字,比如象 Offering。
避免使用相似或者仅在大小写上有区别的名字。例如,不应同时使用变量名 persistentObject 和 persistentObjects,以及 anSqlDatabase 和 anSQLDatabase。
避免使用下划线作为名字的首末字母。以下划线为首末字母的名字通常为系统保留,除预处理定义之外,一般不用作用户命名。更重要的是,下划线经常造成麻烦而且难输入,所以尽量避免使用。

### FreeRTOS 的命名规则及变量函数命名惯例 FreeRTOS 是一种广泛使用的实时操作系统 (RTOS),其设计注重简洁性和可移植性。为了保持代码的一致性和易读性,FreeRTOS 遵循了一套严格的命名约定。 #### 1. 函数命名规则 FreeRTOS 中的函数通常采用 `prefix_functionName` 的形式进行命名。前缀通常是模块名称或者功能类别缩写,以便于快速识别函数所属的功能组。例如: - **`xTaskCreate`**: 表示任务管理相关的函数,其中 `x` 是返回类型的提示(见下文),`Task` 表示任务,`Create` 表示创建操作。 - **`vTaskDelay`**: 表示延迟任务的操作,`v` 表示无返回值(void 类型),`TaskDelay` 表示任务延迟[^1]。 #### 2. 变量命名规则 FreeRTOS 的变量命名也遵循类似的模式,通常具有描述性的名字并带有特定的前缀或后缀以表明用途。以下是常见的变量命名方式: - **全局变量**:通常以 `ux` 或 `px` 开头,分别表示 unsigned 和 pointer 类型的数据。例如,`uxTopReadyPriority` 表示最高优先级的任务状态[^3]。 - **局部变量**:一般使用更具描述性的短语作为变量名,如 `taskHandle` 表示任务句柄。 #### 3. 数据类型命名规则 FreeRTOS 定义了自己的数据类型集合,这些类型主要用于跨平台兼容性以及提高代码的可移植性。常见数据类型及其含义如下: - **`BaseType_t`**: 基础整数类型,用于存储简单的数值。 - **`TickType_t`**: 时间计数器类型,常用于时间间隔计算。 - **`StackType_t`**: 栈元素类型,具体实现依赖目标硬件架构。 #### 4. 返回值类型约定 FreeRTOS 对不同返回值类型也有明确的规定,通过字母前缀区分不同的返回值意义: - **`pdTRUE`, `pdFALSE`**: 表达布尔逻辑的结果,属于 ` BaseType_t` 类型。 - **`pdPASS`, `pdFAIL`**: 表示操作成功与否的状态标志。 - **`x`**: 如果函数返回复杂结构体,则通常以 `x` 开始;如果返回简单类型则可能省略此标记。 #### 示例代码展示 下面是一个典型的 FreeRTOS API 使用案例: ```c // 创建一个任务 TaskHandle_t taskHandle; if( xTaskCreate( vTaskCode, /* Task function */ "MyTask", /* Name of the task as a string */ configMINIMAL_STACK_SIZE,/* Stack size in words */ NULL, /* Parameter passed into the task */ tskIDLE_PRIORITY, /* Priority at which the task is created */ &taskHandle ) != pdPASS ) { // 错误处理... } ``` 上述例子展示了如何利用 FreeRTOS 提供的标准接口来初始化新线程,并验证是否成功完成配置过程[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值