![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c/c++编程
David.li
这个作者很懒,什么都没留下…
展开
-
ring buffer
ring buffer原理及应用转载 2022-10-01 11:55:20 · 173 阅读 · 0 评论 -
减小程序大小
一、背景可执行程序需要链接一些静态库,但是静态库中的函数并没有全部使用,只用了其中的几个,但是系统默认会自动把整个静态库全部链接到可执行程序中,造成可执行程序的大小大大增加,浪费了flash空间和内存空间。二、方法因为GCC链接操作以section作为最小的处理单元,只要一个section中有某个符号被引用,该section就会被加入。如果我们的某个.c程序中所有function都加入同一个section.则如果用到这个.c生成的.o的其中任何一个function.则必须将所有function(符转载 2021-03-16 17:58:16 · 330 阅读 · 0 评论 -
gcc 内联函数编译报错
问题描述一段很简单的代码,使用了内联函数,编译竟然报错。在这里记一下加深记忆。#include <stdio.h>#include <stdbool.h>inline int sum(int a, int b){ return a+b;}int main(int argc, char * argv[]){ int a,b; a=3;b=5; printf("sum(%d,%d) is %d\n", a, b, sum(a,b));转载 2020-08-25 17:32:45 · 759 阅读 · 0 评论 -
自己用vfork实现system函数避免调用shell失败
自己实现一套system调用的功能,以前有碰到过用系统函数system出现不起作用的情况大多都失败了,后来在不得已的第三方工具的调用上自己实现了system函数,但是建议能用接口的最好用接口函数,vfork会占用系统资源,在内存不是很充足的情况下偶尔也会失败。int System_cmd(const char *cmd){ pid_t pid; if(-1==(pid...原创 2019-05-24 10:29:26 · 679 阅读 · 0 评论 -
用select替代usleep导致的线程阻塞问题
写一个延迟函数,usleep是延迟函数有时导致线程阻塞会因为有定时器终止的信号(SIGALRM)产生时会一些未定义的情况,建议少用,我们目前都换成了select替代,具体代码如下void Msleep(unsigned int MilliSecond){ struct timeval time; time.tv_sec = MilliSecond / 1000;//seconds...原创 2019-05-24 10:22:06 · 1620 阅读 · 0 评论 -
快速排序的递归算法实现
用了这么多,感觉还是递归最简单最好用,下面介绍下递归实现快速排序,它在很多公司笔试题中也有考到#include <stdio.h>int FindSite(int *arr, int low, int high){ int flag=arr[low]; //将需要查找位置的第一个数字赋值给flag; int *tmp = arr; while (low < ...原创 2019-06-05 10:30:12 · 1450 阅读 · 0 评论 -
二分查找递归的算法
特别注意的是二分查找也叫做折半查找,所以要求初始化的数组序列必须是有序的,不然会查找失败!#include <stdio.h>int TwoPointsSearch(int Array[],int low,int high,int key/*要找的值*/){ if (low<=high) { int mid = (low+high)>>1; ...原创 2019-06-05 10:15:54 · 4851 阅读 · 0 评论 -
linux 下判断wifi连接状态的代码
查看wifi连接状态,有时候wifi断开连接了但是我们不知道,以至于不能重新连接上wifi,这时候我们需要一个判断来知道wifi时候断开了,下面这段代码就是来检测wifi连接状态的,代码非常简单/*********************************************************************** 函数名称: * 功能描述:* 输入参数:...原创 2019-05-23 11:49:08 · 6379 阅读 · 2 评论 -
linux 通过系统函数设置系统时间
我们都熟悉用date来设置系统时间,下面我来介绍下通过系统函数设置系统时间#include <stdio.h>#include<sys/time.h>#include<unistd.h>#include <time.h>int SetSystemTime(char *dt){ struct tm rtc_time;...原创 2019-05-23 11:38:07 · 3691 阅读 · 0 评论 -
htonll和ntohll函数的实现
由于机器之间存在大小端的问题,所以需要一个统一的标准,那就是网络字节序,目前我们所知道的就是htonl,ntohl, htons,ntohs,这些用的比较多一些,对于long long类型还不知道怎么转换,下面我将给出具体解决办法,其实用到了htonl和ntohl和移位操作。#include <stdio.h>#include <arpa/inet.h>#i...原创 2019-05-21 09:35:12 · 9208 阅读 · 0 评论 -
c++调用c的问题处理
最近项目用到了一个c++的功能库,出现大量报错,c++调用c,中间遇到很多问题,现在把解决过程列出来,可能问题有些低略,有需要的看下吧,废话不多说了下面列出问题和解决方法问题一:编译报错flv_tag_creator.cpp:(.text+0x646): undefined reference to `operator new(unsigned int)'flv_tag_creator...原创 2019-04-15 10:49:43 · 910 阅读 · 0 评论 -
protobuf、xml、json 哪家强
因为面试中腾讯,京东等大公司都有被考到protobuf的知识,我居然只知道xml,json效率比protobuf大大降低,碎研究了下它希望对大家有所帮助! protobuf的介绍一条消息数据,用protobuf序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一,总体看来ProtoBuf的优势还是很明显的。protobuf是googl...原创 2019-02-18 21:20:03 · 2420 阅读 · 2 评论 -
链表的反转问题(递归和非递归方式)
转载:https://www.cnblogs.com/kubixuesheng/p/4394509.html定义一个方法(函数),实现输入一个链表的头结点,然后可以反转这个链表的方向,并输出反转之后的链表的头结点。typedef struct Node{ int data; Node *next;} Node, *List;链表类的问题,涉及到了很多指针的操作,需要严谨的分析,全...转载 2018-04-07 22:26:55 · 236 阅读 · 0 评论