标签归档:C

fmt,… 格式化I/O输出

#ifndef __MAIN_H__
#define __MAIN_H__

#include "drivers/mss_uart/mss_uart.h"
#include <stdio.h>

char g_buf[64];
int g_buf_len;
#define uart0_printf(fmt,...)  { \
sprintf(g_buf, fmt, ##__VA_ARGS__);\
for(g_buf_len = 0; g_buf_len < 64; g_buf_len++)\
{\
	if(g_buf[g_buf_len] == '#')\
		break;\
}\
MSS_UART_polled_tx(gp_my_uart, (const uint8_t*)g_buf, g_buf_len-1);}

#endif /* __MAIN_H__ */

C/C++注释规范

整理自互联网,整合了许多大佬及公司的规范,谨记

文件头

/*****************************************************************************
 *   Copyright: zhou
 *   File name: 文件名
 * Description: 用于详细说明此程序文件完成的主要功能,与其他模块或函数的接口,输出值、取值范围、含义及参数间的控制、顺序、独立或依赖等关系
 *      Author: 作者
 *     Version: 版本
 *        Date: 完成日期
 *     History: 修改历史记录列表, 每条修改记录应包括修改日期、修改者及修改内容简述。
 *****************************************************************************/

函数注释

/*****************************************************************************
 *    Function:		// 函数名称
 * Description:		// 函数功能、性能等的描述
 *       Input:		// 输入参数说明,包括每个参数的作
 *                      // 用、取值说明及参数间关系。
 *      Output:		// 对输出参数的说明。
 *      Return:		// 函数返回值的说明
 *      Others:		// 其它说明
 *****************************************************************************/

C 产生伪随机数

计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。)

我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系列数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统。

主要用到三个函数
rand()函数, srand()函数, time()函数
继续阅读

C字符串与数字之间的转换

字符串转“数”

atoi()

头文件:#include <stdlib.h>

atoi() 函数用来将字符串转换成整数(int),其原型为:
int atoi (const char * str);

【函数说明】atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回。

【返回值】返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0。
范例:将字符串a 与字符串b 转换成数字后相加。
继续阅读

C实现CRC32校验

CRC即循环冗余校验码(Cyclic Redundancy Check):是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。

crc就是一个数值,该数值用于检验数据的正确性,crc校验的原理就是将需要作校验的数据与一个数据模2相除,得到的余数即为校验值。

模2相除就是在除的过程中用模2加,模2加实际上就是异或运算,就是不进行进位操作,即相同为假,不相同为真。
继续阅读