1.目录用小写加下划线:my_useful_class.h
2.文件注释
/**
******************************************************************************
* @file main.c
* @author AK
* @version V1.0
* @date 2022.07.22
* @brief
******************************************************************************
* @attention
*
******************************************************************************
*/
3.函数注释
/*
*@brief 函数名: 解释
*@param 参数名:解释
*@param 参数名:解释
*@retval None
*/
4.函数用小驼峰:countDays();
5.类及结构体用大驼峰:typedef struct {} CountData;
6.变量用小驼峰:int myData;
7.宏和枚举用全部大写+下划线:#define MY_DATA 5
8.测试时使用的测试输出代码
#ifdef USER_MAIN_DEBUG
#define user_main_printf(format, ...) printf( format "\r\n", ##__VA_ARGS__)
#define user_main_info(format, ...) printf("[\tmain]info:" format "\r\n", ##
__VA_ARGS__)
#define user_main_debug(format, ...) printf("[\tmain]debug:" format "\r\n", ##
__VA_ARGS__)
#define user_main_error(format, ...) printf("[\tmain]error:" format "\r\n",##
__VA_ARGS__)
#else
#define user_main_printf(format, ...)
#define user_main_info(format, ...)
#define user_main_debug(format, ...)
#define user_main_error(format, ...)
#endif
#include <stdarg.h>
void myUartPrintf(char *fmt,...)
{
char s[100];
int i=0;
va_list ap;
va_start(ap,fmt);
vsprintf(s,fmt,ap);
va_end(ap);
while(s[i] != '\0')
{
_UART_SEND(s[i]);
//putchar(s[i]);
i++;
while(!_UART_SEND_IS_EMPTY());
}
}
9.使用多语句的宏时建议使用do{}while(0),比如:do{printf("Hello World!");}while(0);优点是使用这个语句时无论你加不加大括号都不会改变程序的层级结构,如果只使用{}来进行宏定义,可能会改变程序的层级结构。
参考B站UP:江科大自化协的个人空间_哔哩哔哩_Bilibili