如何在Keil中提高代码的可读性

写代码犹如挖坑,挖坑容易,填坑难。一旦代码遇到BUG,需要慢慢调试时,你就会发现代码的可读性非常重要了,代码不整齐、命名不规范等等问题会导致代码像一团屎,看着恶心,检查起来更是悲伤。

所以,写代码前,最好先把代码的整体结构布置好,比如include放什么地方,define放什么地方,需要export的变量、函数放什么地方,最好又要保持自己所有的代码都保持这种模式,这时候,创建一个代码模板就非常有效了。

创建一个代码模板需要注意哪些方面呢?没有什么好的想法的话可以参考一下优秀的开源代码。


上面的代码风格从左到右,分别是FreeRTOS、FatFs、ST的代码风格,都很优秀,而且这些优秀的代码的共同点是,注释跟代码量差不多,甚至超过代码量。

因为的本身也在使用Keil,而且ST的注释很有逻辑,就选择了ST的注释风格。选择了注释风格后,就是创建代码模板了。

创建代码模板步骤如下

下载HAL库,并解压,打开Cube_FW_F7_V1.11.0\Drivers\BSP\Components\adv7533(也可以是其他文件夹下的),删除所有的代码,只留下注释


自己的工程中新建一个文件,复制到新建的文件中

打开工具栏的Configuration,选择Text Completion

新建一个Template,将模板复制进去

重复以上步骤,创建头文件的代码模板


使用代码模板方法

新建一个文件,要包含在项目中

在左侧的工具栏选择Templates

点击先前创建的代码模板


最后附上我创建的代码模板

头文件的代码模板

/* Define to prevent recursive inclusion -------------------------------------*/

#ifndef

#define


#ifdef __cplusplus

extern "C" {

#endif


/* Includes ------------------------------------------------------------------*/



/** @addtogroup BSP

 * @{

 */


/** @addtogroup Components

 * @{

 */


/** @addtogroup ST7735

 * @{

 */


/** @defgroup ST7735_Exported_Types

 * @{

 */


/**

 * @}

 */


/** @defgroup ST7735_Exported_Constants

 * @{

 */


/**

 * @}

 */


/** @defgroup ADAFRUIT_SPI_LCD_Exported_Functions

 * @{

 */


/**

 * @}

 */


#ifdef __cplusplus

}

#endif


#endif /*  */


/**

 * @}

 */


/**

 * @}

 */


/**

 * @}

 */

/************************ (C) COPYRIGHT greedyhao *****END OF FILE****/

源文件的代码模板

/* Includes ------------------------------------------------------------------*/



/** @addtogroup BSP

 * @{

 */


/** @addtogroup Components

 * @{

 */


/** @addtogroup ST7735

 * @brief      This file provides a set of functions needed to drive the

 *             ST7735 LCD.

 * @{

 */


/** @defgroup ST7735_Private_TypesDefinitions

 * @{

 */


/**

 * @}

 */


/** @defgroup ST7735_Private_Defines

 * @{

 */


/**

 * @}

 */


/** @defgroup ST7735_Private_Macros

 * @{

 */


/**

 * @}

 */  


/** @defgroup ST7735_Private_Variables

 * @{

 */


/**

* @}

*/


/** @defgroup ST7735_Private_FunctionPrototypes

 * @{

 */


/**

* @}

*/


/** @defgroup ST7735_Private_Functions

 * @{

 */


/**

* @}

*/


/**

* @}

*/


/**

* @}

*/


/**

* @}

*/


/************************ (C) COPYRIGHT greedyhao *****END OF FILE****/



猜你喜欢

转载自blog.csdn.net/juhou/article/details/80965004