摘要: 源码 #define STACK_TOP(head) (head) #define STACK_EMPTY(head) (!(head)) #define STACK_PUSH(head,add) \ STACK_PUSH2(head,add,next) #define STACK_PUSH2(he 阅读全文
posted @ 2022-07-24 15:06 mrzono 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 库函数 utarray基于realloc实现 //必须要有,程序开头先声明UT_array变量,然后调用utarray_new,程序结束前要记得调用utarray_free,否则堆内存不被释放 utarray_new(UT_array *a, UT_icd *icd) utarray_free(UT 阅读全文
posted @ 2022-07-24 11:43 mrzono 阅读(749) 评论(0) 推荐(0) 编辑
摘要: 库函数 //新增元素 HASH_ADD_INT(head, keyfield_name, item_ptr); HASH_ADD_STR(head, keyfield_name, item_ptr); HASH_ADD_PTR(head, keyfield_name, item_ptr); //查找 阅读全文
posted @ 2022-07-24 00:26 mrzono 阅读(2174) 评论(0) 推荐(2) 编辑
摘要: UTHASH库简介 首先先上官方链接:uthash,全英文,不过写得通俗易懂,比本子和棒子英语好多了~ 一句话简介:uthash这个库是为C语言服务的,只有头文件,通过宏实现,有链表、哈希表、变长数组、字符串、栈、ring-buffer。 这个库的作用? 让C语言拥有类似于C++的特性(虽然很不像) 阅读全文
posted @ 2022-07-23 23:25 mrzono 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 前言 大学时学C语言时,依稀还记得老师讲过冒泡、插入、选择等排序算法。当时听过也就留了个印象,这么多年下来,几乎完全不记得了。最近从网上找了些博客看,自己学着用CPP实现了一遍,今日记录于此。 冒泡排序 void Solution::BubbleSort(int *arr, int length) 阅读全文
posted @ 2022-04-01 23:08 mrzono 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 背景 公司是做自动化设备的,PLC和其他一些Modbus、Ethernet设备组成下位机。上位机方面,我们基于每一个物理设备写一个win32服务程序,将各种设备接口格式统一,再由一个负责流程控制与命令分发的调度程序来操控所有的服务进程,这里面就涉及到进程间通信。进程间通信有7种,我目前只对管道和so 阅读全文
posted @ 2022-02-24 00:46 mrzono 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 前言 公司使用CPP代码与PLC通信, 通信方式为ADS(倍福开放的通信方式). 偶然间发现倍福的ADS通信还支持其他好多种语言, 恰好最近在用C#写一些设备调试的小程序, 就尝试了下用C#写了一个demo程序, 可以做到控制一个小电机. 下面会对接口文件做一些说明, 并贴出实现代码. 准备 首先需 阅读全文
posted @ 2022-01-31 00:06 mrzono 阅读(6804) 评论(1) 推荐(2) 编辑