![](https://img-blog.csdnimg.cn/20200325154808234.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
c/c++
文章平均质量分 71
c/c++基础知识和进阶
FrankJT
这个作者很懒,什么都没留下…
展开
-
链表经典算法题
定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。原创 2020-10-03 16:30:17 · 1695 阅读 · 0 评论 -
算法大总结之----10大经典排序算法(从小到大排列)
1. 冒泡排序冒泡排序,顾名思义,就是出头的被排序。其算法复杂度为O(n2n^{2}n2),空间复杂度为O(111)。1.1. 算法讲解将第j个元素和后面的元素依次对比,如果大于序列为j+1的元素,就进行交换。作为对比的基础元素j取值范围为"0 => size - 2"。因为j + 1不可超过size - 1。因而,需要进行对比的j有size - 1个,这个组别用字母i表示。当排...原创 2020-05-02 10:06:05 · 9588 阅读 · 0 评论 -
提升效率之如何打印出漂亮的带颜色的日志(输出高亮)
日志系统对于一个软件的维护是很重要的,对于直接在本地打印的信息,可能包含非常多,如何才能快速发现自己想要打印的东西呢?带上颜色的输出,绝对是很好的选择。使用c/c++的输出可以照搬shell的,那么先来看下shell怎么花里胡哨的输出。1. 花里胡哨的shell打印第二段就是我想要的结果,而第一段是错误的输出,颜色该结束还没结束,这个下面会说到原因。(不过我感觉都挺好看hhh,程序员的快乐...原创 2020-03-28 10:15:46 · 4524 阅读 · 1 评论 -
记录一次gcc编译遇到的问题
一开始只会编译一个.c文件 gcc xxx.c -o xxxxx得到可执行文件,带头文件就不会了,然后查了下,加上 “-I” + “./”(我的是当前目录)。这样gcc就会在当前目录寻找 .c文件所包含的 .h文件。然后尝试编译这个video_json.c, 发现还是有问题,怎么找不到cJSON的东西。可cJSON.h明明已经包含在当前目录里了啊。。后来查了下发现,才只写gcc vid...原创 2020-02-19 20:07:05 · 249 阅读 · 0 评论 -
线程优先级学习笔记
刚刚学习线程,有一点记录一点。#include <pthread.h>#include <stdio.h> pthread_mutex_t mutex ;void *print_msg(void *arg){ int i=0; printf("this is %d\n",(int*)arg); pthread_mutex_l...原创 2020-03-04 10:30:00 · 180 阅读 · 0 评论 -
pthread_cond_wait和pthread_cond_signal的使用方法梳理
这两个函数是多线程操作中非常重要的,也是相对来说难理解的。这里梳理一下。首先是函数介绍,int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)这里有两个参数,cond和mutex。cond是条件,这个值可以用宏做声明:pthread_cond_t cond = PTHREAD_COND_INITIA...原创 2020-03-04 17:44:04 · 1294 阅读 · 5 评论 -
sqlite3 打印的三种方式
当使用SELECT语句等的时候,想要打印信息,这里提供三种方式1. 使用sqlite_exec的回调函数。sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void *data, char **errmsg)第四个函数data是callback的第一个参数。int displaycb(void *para,int ...原创 2020-03-07 15:56:11 · 2854 阅读 · 0 评论 -
socket编程(一):TCP/UDP基础篇
1. 关键的结构体在说sockaddr_in之前,我觉得有必要列出来sockaddr这个结构体。1.1. sockaddrsockaddr是通用的socket地址,其定义在#include <sys/socket.h>中。struct sockaddr{ sa_family_t sin_family; //地址族,一般使用AF_INET char sa_data[1...原创 2020-03-13 21:06:37 · 491 阅读 · 0 评论 -
c语言 神奇的可变参数
关于sprintf,printf,这些函数,参数都是不固定的。而这样编程方式,也可以自己来搞定。c语言提供了几个宏就是做这个的。va_list //一个很特殊的类型type va_arg(va_list ap, type);void va_start(va_list ap, last_arg);void va_end(va_list ap);void va_copy(va_list ...原创 2020-03-11 17:44:20 · 200 阅读 · 0 评论 -
c语言 柔性数组的使用
先说c++吧typedef struct _node { int num; int age[];}node;这个就是所谓的柔性数组。结构中最后一个元素允许是未知大小的数组。(必须是最后一个,这很重要,下面解释)可以试一下,sizeof(node)是4,若将num去掉,sizeof(node)就是1,我们知道空的struct,sizeof是1。有此可发现,柔性数组并...原创 2020-03-11 11:36:26 · 675 阅读 · 0 评论 -
c语言将 unix时间戳转为 年-月-日 时:分:秒 库函数方法
#include <string.h>#include <stdio.h>#include <time.h>void timestamp(char* test_time) { struct tm* t; time_t tt; time(&tt); t = localtime(&tt); sprintf(test_time,...原创 2020-02-18 10:51:34 · 2072 阅读 · 0 评论