c
demo记忆
连坚持都不会 还谈什么未来
展开
-
代码风格整理
1.相对独立的程序块间、变量说明之后必须加空行2.源文件头部进行注释,列出:版本说明、文件名、修改日志3.函数头部应进行注释4.结构体定义注释5.结构体成员说明6.宏定义说明7.所有的线程需要加线程名称,如果是循环一定要加睡眠时间,否则CPU占用率会占用过高8.减少使用全局变量,全局变量会增加代码的耦合性9.仔细定义并明确全局变量的含义、作用、取值范围10.如果使用数组一定要注意下标的越界情况11.函数输入的指针必须进行判空操作12.malloc或new申请内存之后,立即检查指针值是否原创 2021-12-14 14:07:44 · 179 阅读 · 0 评论 -
c语言基础整理
一些开发中用到的接口整理int ret=strspn(str1, str2)表示str1中有几个是被str2中有的比如str1=255,str2=123456那ret=3,一般这个用法主用用于检测str1中全是数字,组合用法就是strspn(str1, “0123456789”) == strlen(str1),表示所有str1全是数字整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。整数常量也可以带一个后缀,后原创 2021-12-14 13:55:00 · 144 阅读 · 0 评论 -
项目中实现回调功能《指针函数与函数指针》
指针函数:顾名思义,它的本质是一个函数,不过它的返回值是一个指针。其声明的形式如下所示:int *p(int,int);ret *func(args, ...);函数指针:与指针函数不同,函数指针 的本质是一个指针,该指针的地址指向了一个函数,所以它是指向函数的指针。我们知道,函数的定义是存在于代码段,因此,每个函数在代码段中,也有着自己的入口地址,函数指针就是指向代码段中函数入口地址的指针。int (*p)(int,int)ret (*p)(args, ...);因此,我们可以采用如原创 2021-08-20 16:04:12 · 94 阅读 · 0 评论 -
关于AES128加解密的使用
DES:加密标准 秘钥长度56比特,安全强度为2的56次方AES:高级加密标准,主要包括 AES-128,AES-196,AES-256,属于对称密码密钥K:用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再通过网络传输给对方,或者直接面对面商量密钥。密钥是绝对不可以泄漏的,否则会被攻击者还原密文,窃取机密数据。AES加密函数设AES加密函数为E,则 C =原创 2021-08-06 16:11:56 · 1203 阅读 · 0 评论 -
随机数生成以微秒做种子
*/ 生成随机数,使用微秒作种子 */INT32 genRandom(void){uint32_t tickus = 0;struct timeval time;gettimeofday(&time, NULL);tickus = time.tv_sec + time.tv_usec;srand(tickus);return (rand());}**原创 2021-01-05 14:46:34 · 392 阅读 · 0 评论 -
文件操作
open函数#include<fcntl.h>int open(constcharpathname,intflags);int open(constcharpathname,intflags,mode_t mode);返回值:成功则返回文件描述符,否则返回-1flags 用于指定文件的打开/创建模式,这个参数可由以下常量(定义于fcntl.h)通过逻辑位或逻辑构成。O_RDONLY只读模式 O_WRONLY只写模式 O_RDWR读写模式mode的使用,打开/创建文件时,原创 2020-12-23 16:28:36 · 59 阅读 · 0 评论 -
16进制转字符串的简单实现
这里主要通过一个数组存了一下简单的16进制,%s是通过ASCII表来进行字符输出的,所以直接输出16进制数会出现乱码。#include <stdio.h>#include <string.h>int main(){ char data[] = {0xaa, 0xaa , 0xaa , 0xaa , 0x01 , 0x03 , 0x00 , 0x00 , 0xe8 , 0x76 , 0xbe , 0x26 }; /* 我的第一个 C 程序 */ printf("%s原创 2020-08-10 11:12:11 · 1256 阅读 · 0 评论 -
cjson的基本使用方法
JSON语法规则:(1)、数据在键值对中;(2)、数据由逗号分隔;(3)、花括号保存对象;(4)、方括号保存数组。 对象:开始{,结束} 数组:开始[,结束] cJSON_CreateObject():创建一个json对象 cJSON_CreateArray():创建一个json数组 cJSON_AddItemToObject():向对象中增加元素,元素包括对象和数组 cJSON_AddNumberToObject():向对象中增加数值 cJSON_A原创 2020-07-28 15:11:54 · 692 阅读 · 0 评论 -
C 实现可变参数
#include <stdio.h>#include <stdarg.h> double average(int num,...){ va_list valist; double sum = 0.0; int i; /* 为 num 个参数初始化 valist */ va_start(valist, num);//初始化valist /* 访问所有赋给 valist 的参数 */ for (i = 0; i原创 2020-06-01 16:49:00 · 123 阅读 · 0 评论