C++
文章平均质量分 81
码农小明
openHarmony多媒体领域开发者。
展开
-
cmake CMakeLists.txt 常用模板
三年前整理过Makefile常用模板 ,一直写手写Makefile,近来不得不用到cmake,实践了一下感觉真香!功能强大!还是那句话 自己总结方便查阅,要是能帮到别人那是极好的~cmake命令依赖CMakeList.txt文件,解析成makefile文件,然后make编译。先按顺序介绍其最简的常用语法,详细语法查阅cmake官网,最后整理完整版示例。常见语法介绍cmake版本必选项。放在第一行,指定cmake最低版本。cmake_minimum_required(VERSION 3.5.1.原创 2021-11-02 18:07:15 · 3874 阅读 · 4 评论 -
深入研究C++虚函数表
class Base {public: virtual void f1(){ std::cout << __PRETTY_FUNCTION__ << std::endl; } virtual void f2(){ std::cout << __PRETTY_FUNCTION__ << std::endl; } virtual void f3(){ std::cout原创 2021-10-16 22:46:49 · 773 阅读 · 3 评论 -
C/C++ 字节对齐 和 类占用空间
基本数据类型长度目前系统以64位居多,下面列出64位系统下的基本数据类型长度。嵌入式开发或者其他对数据长度敏感的场景,建议使用int8_t / int16_t / int32_t等明确长度的类型。数据类型长度/字节char1short2int4long8long long8float4double8 (32位系统为4)void*8bool1结构体/类 字节对齐为了CPU高效访问数据,操作系统会对结构体/类等非原创 2021-10-15 18:13:39 · 657 阅读 · 0 评论 -
Linux C 语言日期时间函数总结
C 语言获取系统时间相关函数总结记录一下,用的时候不至于再去到处找了。函数精度说明time()秒获取系统时间ftime()秒 + 毫秒获取系统时间 1/10^3gettimeofday()秒 + 微秒获取系统时间 1/10^6clock_gettime()秒 + 纳秒获取系统时间 1/10^9sleep()秒延时函数usleep()微秒延时函数 1/10^6struct tm-存储年月日时分秒的结构loc.原创 2021-09-05 17:20:32 · 1513 阅读 · 0 评论 -
C++ 线程池
总结一下C++里面的线程池,用的时候直接Copy就可以了。为什么要用线程池呢?打个比方:不用线程池的话 每次有活,老板就要招一个人去干,干完活就把工人辞了。如果用线程池的话就是,老板招几个人干活,把任务按需分配给这几个人,活少的时候可能这几个人会闲着,但是活多的时候可以让这几个人排队一直干活。这种场景主要考虑如果活都比较小,后者可以省去频繁招聘员工带来的成本,忽略员工没活的时候成本消耗。就是说频繁的新建线程比较耗资源,如果同时新建线程比较多超过了一定的数量也会占用比较多的处理器资源,而线程空跑的时候资.原创 2021-04-10 17:16:18 · 2322 阅读 · 0 评论 -
Linux C/C++ 中锁的使用总结
本文总结C和C++中各种锁以及使用方式,主要是C语言中的互斥锁 mutex 和读写锁 rwlock,以及C++中的互斥锁mutex以互斥锁管理。C++中的各种mutex其实是对C语言中的mutex的面相对象的封装,此外的mutex管理部分的类其实是用RAII的风格对mutex对象进行进一步包装。此外线程间通信还有信号量,因为它不叫锁就不说了,还有个非常不常用的自旋锁也不说了,还有名字很罕见的闩 latch 与屏障 barrier 也不说了。感兴趣自己看 cppreference.com吧。1. C .原创 2020-07-27 21:09:35 · 7955 阅读 · 2 评论 -
C++ 智能指针 shared_ptr 详解与示例
shared_ptr 是C++11提供的一种智能指针类,它足够智能,可以在任何地方都不使用时自动删除相关指针,从而帮助彻底消除内存泄漏和悬空指针的问题。它遵循共享所有权的概念,即不同的 shared_ptr 对象可以与相同的指针相关联,并在内部使用引用计数机制来实现这一点。每个 shared_ptr 对象在内部指向两个内存位置:1、指向对象的指针2、用于控制引用计数数据的指针共享所有权如...原创 2018-12-24 22:58:18 · 91583 阅读 · 8 评论 -
C++ 智能指针 unique_ptr 详解与示例
在本文中,我们将讨论由C++11提供的智能指针std :: unique_ptr&amp;amp;lt;&amp;amp;gt;。unique_ptr &amp;amp;lt;&amp;amp;gt;是C++ 11提供的用于防止内存泄漏的智能指针中的一种实现。unique_ptr对象包装一个原始指针,并负责其生命周期。当该对象被销毁时,会在其析构函数中删除关联的原始指针。...原创 2018-12-22 23:24:16 · 116389 阅读 · 22 评论 -
C++ JSON 库 jsoncpp 新API的使用方法(CharReaderBuilder / StreamWriterBuilder)
既然看到了这篇文章你肯定知道Json是什么东西了,网上有很多解析Json的开源库,最近工作需要用到Json解析,研究发现jsoncpp使用很方便,网上也有很多使用方法介绍,目前为止能查到的基本都是比较老的API使用方法,编译器会提醒使用的某些API已经被弃用了,有的编译器还会直接报错,既然推荐用新的那就学一下新API的使用方法吧,记录一下。JSONCPP是C++中的生成与解析JSON 字符串...原创 2018-12-04 22:48:36 · 34206 阅读 · 15 评论 -
C/C++普通函数指针和类成员函数指针的使用
之前一直以为C++成员函数没法取地址,一直使用静态函数来充当回调函数,直到近日看别人的代码才发现类成员函数也有指针。。。总结记录一下。普通函数指针这面是普通函数的指针的使用方法。#include <stdio.h>void printSum(int a, int b) { printf("%d + %d = %d\n", a, b, a+b);}int m...原创 2018-11-06 22:02:22 · 5325 阅读 · 3 评论