自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一期一会

慢一步步步慢

  • 博客(13)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 gitlab容器部署

gitlab容器部署

2023-02-02 17:24:28 174

原创 CPP静态分析工具与CMake的集成

介绍了CMake与主流的几种开源代码静态分析工具(cppcheck、cpplint、clang-tidy)的结合使用,并附带了集成的代码和环境安装教程

2022-10-11 23:35:54 1123 1

原创 Windows下Cygwin环境搭建

Table of ContentsCygwin下载安装package安装/更新Cygwin下载官网地址:https://cygwin.com/install.html在页面上选择setup-x86_64.exe进行下载安装选择install from internet,下一步确定安装的目录,下一步确定下载包的存储目录,下一步是否使用代理,建议选择Direct Connection(因为选择国内的镜像下载速度快)选择镜像源进行下载,若无,可添加镜像,下一步建议使用清华的镜

2021-04-16 18:12:15 167

原创 DLL开发总结

Table of Contents前言一个简单的例子PE格式与dumpbin工具PE格式dumpbin常用命令DLL符号的导出命令行参数法Def文件法__declspec(dllexport)声明法#pragma linker命令法DLL的使用显式加载隐式链接两者的区别DLL的搜索C++与DLL名称修饰机制的影响问题分类类型B\C问题与extern “C”类型D问题与符号导出PIMPL技法前言回想工作的这两年时间,绕不开的就是

2021-03-15 00:21:25 842

原创 SGI源码剖析-vector篇

Table of Contents源码地址基本原理STL源码关键部分代码解读使用启示源码地址Github:https://github.com/steveLauwh/SGI-STL基本原理std::vector的实质是动态数组,只不过当添加元素后超出数组范围后,将创建一个更大的数组,然后将原数组中的元素复制进新数组,并添加新元素,并且销毁原数组。STL源码_Vector_alloc_base以及_Vector_base的源码,在stl_vector.h:43行// 依据有无

2021-03-12 17:38:43 215

原创 C++总结之预处理指令

Table of Contents预处理指令条件包含指令文本替换指定预定义宏源文件包含#pragma指令#error和#line预处理指令的常见应用防止头文件被重复包含日志宏宏定义实现动态库代码和调试代码使用同一头文件条件编译预处理指令条件包含指令共包括#if,#ifdef,#ifndef,#elif,#else,#endif条件包含指令的格式:以#if / #ifdef / #ifndef开始之后可添加任意多个#elif再接下来添加至多一个#el

2021-01-25 23:05:44 656 1

原创 C++中的可变长参数函数

Table of ContentsC语言形式可变长参数varargs用法Default Argument Promotion(默认参数提升)C++推荐使用的initializer_list参考文档C语言形式可变长参数varargs用法比较常见的有printf系列的函数,其函数声明一般如下:int add(int count, ...);在上面的声明中使用…代表函数的未知可变参数,其使用方式如下:int add(int count, ...){ int resu

2020-06-08 22:22:50 1176

原创 从声明到链接性的一点讨论

为什么有声明和定义的区别?从声明到作用域、存储期,链接性以及存储类型修饰符重要的规则链接性参考文档为什么有声明和定义的区别?这是为了支持分离式编译而设计的,分离式编译允许把程序拆成多个逻辑部分来编写,当程序被分为多个文件,则需要有在文件间共享代码的方式, 这就是声明和定义的区别由来,声明使得名字为程序所知,一个文件如果想要使用别处的名字则必须包含对那个名字的声明,而定义负责制创建于名字关联的实体。从声明到作用域、存储期,链接性以及存储类型修饰符前面我们说到声明使得名字能为程序所.

2020-05-31 02:46:56 401

原创 内存对齐问题的了解和使用

内存对齐内存对齐解决了什么问题?内存对齐的规则是什么?怎么改内存对齐的方式?参考文献内存对齐内存对齐解决了什么问题?内存对齐是为了提高程序运行的效率而诞生的,因为CPU在读取/写入数据时都是以机器字长为单位的,并且只能读取以特定地址起始的数据,当某些数据的内容刚好横跨了机器字长的边界时,这意味着CPU要多次读取才能访问到全部的内容。而内存对齐就是防止这一现象发生。内存对齐的规则是什么?内存对齐的定义:某个元素的内存地址大小为Addr时,当它满足Addr%X == 0时,就称.

2020-05-15 03:02:50 272

原创 CMake/CPack学习小计

从hello world开始最基础的使用和语法hello world工程的CMakeLists文件cmake核心概念三大核心概念间的关系targetgeneratorcommandcmake语法variable普通变量cache变量ENV变量条件、循环语句ifforeachwhile函数宏installcpack使用使用cm...

2020-02-17 18:44:42 1478

原创 ffmpeg跨平台录音技术详解

ffmpeg开发的基本知识linux下的录音windows下的录音示例代码遇到的一些工程问题如果想要编码为MP3文件保存,需要怎么做?为什么编译的时候老是显示对xxxx函数未定义的引用?ffmpeg开发的基本知识这部分请参考我的另一篇博文:https://blog.csdn.net/FakeTaoZero/article/details/104001059linux...

2020-01-16 18:38:57 2370 1

原创 ffmpeg开发基础知识

Table of Contents基本概念ffmpeg命令行规则开发环境搭建windows下ffmpeg开发linux下ffmpeg开发ffmpeg库的组成ffmpeg编程特点常用数据结构及解释AVFormatContext:封装格式上下文简单说明常用的相关函数AVCodecContext:编解码上下文简单说明常用的相关函数AVCodec:编解码...

2020-01-16 11:04:46 776

原创 SGI源码剖析-空间配置器(一文看懂,只讲思想,不讲代码)

Table of Contents基本思想std::allocator接口SGI的空间配置器实现概要基本思想C++和C最大的区别在于面向对象的引入,因此,相对于C的内存管理,C++多了一个对象构造的过程,因此,标准库使用std::allocator模板类来管理内存,STL的空间配置器allocator明确地将内存分配和对象构造作为两个独立的步骤,内存分配由alloc::alloca...

2020-01-06 17:20:57 382

Modern C++ Design: Generic Programming and Design Patterns

C++ In-Depth Series (共11册), 这套丛书还有 《Exceptional C++》,《C++ Template Metaprogramming》,《Applied C++》,《The Boost Graph Library》,《Accelerated C++》 等。 简介: In Modern C++ Design, Andrei Alexandrescu opens new vistas for C++ programmers. Displaying extraordinary creativity and virtuosity, Alexandrescu offers a cutting-edge approach to software design that unites design patterns, generic programming, and C++, enabling programmers to achieve expressive, flexible, and highly reusable code. The book introduces the concept of generic components, reusable design templates that enable an easier and more seamless transition from design to application code, generate code that better expresses the original design intention, and support the reuse of design structures with minimal recoding. The author then shows how to apply this approach to recurring, real-world issues that C++ programmers face in their day-to-day activity. All code is available on the Web, along with Alexandrescu's downloadable Loki C++ library, which provides powerful out-of-the-box functionality for virtually any C++ project. For experienced C++ programmers who have at least some familiarity with the Standard Template Library (STL).

2019-05-09

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除