C/C++
超级用户0
这个作者很懒,什么都没留下…
展开
-
追踪malloc/free的使用
debug技术原创 2023-03-08 13:22:34 · 492 阅读 · 0 评论 -
C语言union内嵌struct
c语言数据结构的小知识点原创 2023-02-22 09:40:44 · 712 阅读 · 0 评论 -
没有getopt.h怎么办?自己添加一个!
没有getopt怎么办?自己添加一个!原创 2023-01-30 11:02:21 · 484 阅读 · 0 评论 -
linux环境读写串口
在linux环境读写串口文件的示例代码原创 2022-09-22 10:45:00 · 771 阅读 · 0 评论 -
makefile
SRCDIRS :=. src INCDIRS :=.CFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.c))CPLUSPLUSFILES := $(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.cpp))SFILES :=$(foreach dir, $(SRCDIRS), $(wildcard $(dir)/*.S))#------------------------...原创 2022-04-25 17:54:00 · 1115 阅读 · 0 评论 -
【无标题】
线程池的实现#include <stdlib.h>#include <pthread.h>#include <unistd.h>#include <assert.h>#include <stdio.h>#include <string.h>#include <signal.h>#include <errno.h>#define DEFAULT_TIME 10 /*10s检测一次*原创 2022-03-21 20:34:21 · 131 阅读 · 1 评论 -
linux 解析命令行参数的例子
linux 解析命令行参数的例子下面是一个把文件转数组的小程序#include "stdio.h"#include <string.h>#include <sys/stat.h>#include <stdlib.h>#include <getopt.h>#include <errno.h>#include "string.h"#include "stdint.h"#include "fcntl.h"#include "unis原创 2022-03-18 17:00:46 · 323 阅读 · 0 评论 -
使用Qemu模拟arm开发板
使用Qemu模拟arm开发板环境:ubuntu181.安装qemusudo apt-get install zlib1g-dev libglib2.0-0 libglib2.0-dev qemu安装完后在shell输入 qemu 按tab键如果出现自动补齐就证明成功安装2.安装交叉编译链环境sudo apt-get install gcc-arm-linux-gnueabi 验证安装dpkg -l gcc-arm-linux-gnueabi 可以看到安装结果为user@ubun原创 2022-03-07 09:21:03 · 3416 阅读 · 0 评论 -
基于c++11的消息队列
#ifndef _MSG_QUEUE_H#define _MSG_QUEUE_H#include <mutex>#include <condition_variable>#include <list>template<typename T>class MsgQueue{public: MsgQueue() {}; T* pop(void) { T* r = nullptr; std::unique_lock<std::mute原创 2021-12-07 16:51:08 · 649 阅读 · 0 评论 -
memcpy的实现
这个函数是标准C库里面的一个函数,挺简单的。面试的有人问,下面是一个简单的实现。void my_memcpy(void *_des,const void *_src ,int len){ if(!_des || !_src || len ==0){//非法条件检查 return ; } char *src = (char *)_src; char *des =(char *)_des; if(des<src ||des >=(src+l原创 2020-12-20 20:23:20 · 312 阅读 · 0 评论 -
双向链表基础
类型定义#ifndef __DOUBLE_LINKLIST_#define __DOUBLE_LINKLIST_#include <stdbool.h>typedef struct _linklistNode{ struct _linklistNode *prev,*next; void *dataPtr;}linklistNode ;typedef struct{ struct _linklistNode *head; int nodenum原创 2020-12-11 14:33:36 · 123 阅读 · 0 评论 -
linux下使用命名管道实现的聊天室
linux下使用IPC实现的聊天室做这个纯粹是为了联系命名管道的使用,先来看看效果图吧!从图里面看,实现聊天室的基本功能,如消息收发,用户离开提醒。原创 2020-12-09 16:42:06 · 413 阅读 · 0 评论 -
Makefile编译大型工程
Makefile编译大型工程1.Makefile 简介看到这篇文章相信你对Makefile已经有所了解,因此就跳过这部分。2.工程组织大型工程一般是模块化的,一般是不同的模块被放在不同的文件夹下,在编译时对不同的模块进行编译。本文就...原创 2020-11-16 10:55:11 · 1189 阅读 · 0 评论 -
C语言计算结构体成员偏移量
C语言计算结构体成员偏移量在一些面试题中见到了类似的题目,现在进行总结。(这个正式冷门的知识点,正常开发中几乎没有遇到过)描述:对于几个结构体,求其成员的地址相对于整个结构体成员的偏移量。方法:(int)(&((struct Test*)0)->member));struct Test是结构体类型,member就是结构体的成员。下面是测试代码。v#include <stdio.h>#include <stdlib.h>#include <st原创 2020-11-14 20:28:34 · 1028 阅读 · 0 评论 -
一个简单地makefile示例
SRCDIRS :=srcINCDIRS :=srcTARGET := sdkOUTPUT_DIR_NAME := objcross_complier :=complier :=$(cross_complier)gcccpp_complier:=$(cross_complier)g++LD :=$(cross_complier)ldOBJCOPY :=$(cross_complier)objcopyCFILES := $(foreach dir, $(SRCDIRS), $(wil原创 2020-11-03 15:55:01 · 134 阅读 · 0 评论 -
C语言结构体内存对齐
C语言结构体内存对齐结构体是C语言常用的数据结构,它也是C语言支持的唯一一种聚合类型。在编译器为某个结构体分配的时候,原来相邻的的成员的内存却未必是相邻的。这是怎么回事呢?请往下看。观察一下下面的结构体:struct { char am1; short am2; int am3; short am4; int am5;}s1;很明显,该结构体有5个成员变量,那么结构体s1占用空间会是各个成员占用的空间之和吗?它们的内内存地址会是连续的吗?我们用一段程序看原创 2020-05-12 10:09:53 · 170 阅读 · 0 评论 -
数据结构基础:队列的实现
队列是程序开发中常用的结构。队列具有先进先出(FIFO的特点,在很多时候我们可以用队列来模拟一片缓冲区来实现数据的缓冲。下面是一个简单的队列实现。头文件#ifndef RINGFIFO_H_INCLUDED#define RINGFIFO_H_INCLUDED#ifdef __cplusplus extern "C" {#endiftypedef char DATATYPE;t...原创 2020-04-19 10:36:25 · 232 阅读 · 0 评论 -
数据结构基础:栈的实现
数据结构基础:栈的实现栈是程序中常见的数据结构,具有先进后出(LIFO)的特点。自己实现一个栈将会加深对于栈的理解。下面是一个简单的栈的实现。头文件my_stack.h···#ifndef MY_STACK_H_INCLUDED#define MY_STACK_H_INCLUDED#define STACK_INIT_SZIE (100)#define STACKINCREMENT...原创 2020-04-19 10:18:03 · 284 阅读 · 0 评论 -
C文件拷贝实例
#include <string.h>//check if str1 is end with str2int endsWith(const char *str1,const char *str2){ if((!str1)||(!str2)||((strlen(str1))<strlen(str2))) return -1; char *p=str1...原创 2020-03-14 12:59:12 · 148 阅读 · 0 评论 -
单向链表的C语言实现
单向链表的C语言实现头文件C文件测试程序头文件#ifndef MYLINKLIST_H_INCLUDED#define MYLINKLIST_H_INCLUDED#include <stdint.h>#include <stdbool.h>typedef struct my_linklist{ int value; struct my_link...原创 2020-01-17 16:30:08 · 219 阅读 · 0 评论