
C/C++
pony.li
前百度、鹅厂高级后台开发一枚
展开
-
CMake你该知道的事!
CMake你该知道的事CMake是一个开源的跨平台工具系列,用于构建、测试和打包软件。CMake用于使用简单的平台和编译器独立配置文件控制软件编译过程,并生成可在您选择的编译器环境中使用的本机makefile和工作区。CMake工具套件是由Kitware创建的,以满足对ITK和VTK等开源项目强大的跨平台构建环境的需求。CMake是Kitware的软件开发商业支持的开源平台集合的一部分。工作需要去仔细研究了一下CMake并谈谈理解。文章目录CMake你该知道的事CMake基本使用简单示例二、cmak原创 2020-11-10 10:34:46 · 827 阅读 · 0 评论 -
linux下c语言、go语言 gdb调试
go语言 gdb调试gdb功能1.启动程序,可以按照开发者的自定义要求运行程序。2.可让被调试的程序在开发者设定的调置的断点处停住。(断点可以是条件表达式)3.当程序被停住时,可以检查此时程序中所发生的事。4.动态的改变当前程序的执行环境。编译Go程序的时候需要注意以下几点1.传递参数-ldflags “-s”,忽略debug的打印信息2.传递-gcflags “-N -l” 参数,这样可以忽略Go内部做的一些优化,聚合变量和函数等优化,这样对于GDB调试来说非常困难,所以在编译的时候加入这原创 2020-05-20 19:40:45 · 602 阅读 · 0 评论 -
你该懂的“锁”知识!
你该懂的“锁”知识!生活中用到的锁,用途都比较简单粗暴,上锁基本是为了防止外人进来。文章目录你该懂的“锁”知识!前言一、互斥锁与自旋锁详解二、读写锁三、乐观锁与悲观锁基本概念优缺点和适用场景四、CAS有哪些缺点?1、ABA问题总结前言那在编程世界里,「锁」更是五花八门,多种多样,每种锁的加锁开销以及应用场景也可能会不同。如何用好锁,也是程序员的基本素养之一。在高并发的场景下,如果选对了合适的锁,则会大大提高系统的性能,否则性能会降低。多线程访问共享资源的时候,避免不了资源竞争而导致数据错乱原创 2020-10-12 15:17:17 · 228 阅读 · 0 评论 -
C/C++ do{} while(0) 你该知道的事?
do{}while(0)只执行一次无意义?你可能真的没理解1. do{ code }while(condition)结构2. do while/while do的区别3. 使用优势文章参考do{}while(0)只执行一次无意义?你可能真的没理解1. do{ code }while(condition)结构在C/C++开发中,宏定义非常强大也非常便捷,如果正确使用可以让你的工作事半功倍。然而,在很多的C/C++程序中,你可能会看到不是那么直接的比较特殊一点的宏定义,比如do{}while(0)。一.原创 2020-10-06 13:15:33 · 585 阅读 · 1 评论 -
C/C++“宏“你该知道的事! --宏实现简单日志系统
C/C++"宏"你该知道的事什么是“宏”,和常量有啥区别?1. 宏定义2. 常量3. 区别宏的高端用法简单的拿个宏来做个日志系统文章参考什么是“宏”,和常量有啥区别?1. 宏定义宏定义是C语言提供的三种预处理中的一种,又称为宏代换、宏替换,简称“宏”,用#define定义,如下:#define Pi 3.1415926宏常量没有类型,它是在编译前即预编译阶段进行字符替换,在预编译阶段,直接将PI替换成3.1415926,同时没有类型安全检查,系统也不会为它分配内存。在c语言中,头文件中的加入 #原创 2020-09-27 16:45:14 · 1052 阅读 · 0 评论 -
C语言设计新思路--函数指针--位运算
C语言设计新思路函数指针做成多态的效果使用位运算进行hash存储1.首先在枚举中加入你要的类型2.建立对应的位运算的组 (包含你要的参数用或来连接)3.后面就可以用位运算的操作来进行判断4.我们还可以进一步进行判断参考文章C语言大家大学都学过,很多平常很难想到去使用的,但是用起来能让你拍案叫绝的设计思路,特来总结一下,分享一波。------我的目标是分享代码,让大家懂原理,大胆的用到自己的代码里。函数指针做成多态的效果函数指针的作用,相必大家都是了解的,c++的虚函数就是通过对c语言的函数指针封装做原创 2020-09-23 15:18:12 · 227 阅读 · 0 评论 -
Linux操作系统中的“迭代器“
Linux操作系统中的"迭代器"常规教科书中使用的双向链表linux系统提供的双向链表api二者对比分析1.首先从占用的内存的角度来看一下2.使用方便来说对应上述公式是怎么用宏运算出来的?文章参考常规教科书中使用的双向链表typedef struct double_linke_list_s { char * username; unsigned int age; struct double_linke_list_s *pre; //指向前一个指针节点 struct double_li原创 2020-09-22 17:00:10 · 547 阅读 · 0 评论