如何在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****/