自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 FFmpeg`硬件加速并且在代码中使用`NVIDIA`的编解码器

@datetime: 2021/06/14@author: shenhao文章目录`FFmpeg`硬件加速并且在代码中使用`NVIDIA`的编解码器前言`CUDA`简单介绍`1.Windows`1.1 准备工作1.1.1 安装`Msys2`1.1.2 编译`libx264(可跳过)`1.1.2.1 使用`pexports`1.1.2.2 使用Visual Studio的`Developer Cmd Prompt`1.1.3 编译`libx265(可跳过)`1.1.4 安装`CUDA Toolkit.

2021-06-14 16:50:09 1432

原创 makefile的基础使用与实践

文章目录前言变量变量的定义和初始化变量的使用使用变量的值作为变量空变量三种定义初始化的区别变量高级用法追加变量的值条件判断ifeq 和 ifneqifdef 和 ifndef函数字符串处理函数substfilter[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s6xBxjoY-1610765906604)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-202101161027224

2021-01-16 10:59:17 175

原创 Typora的一些快捷键操作

此篇的内容演示了Typora中的一些快捷操作和扩展语法。内容主要参考自<<了不起的Markdown>>/毕小朋著.—北京:电子工业出版社,2019.8ISBN 978-7-121-37007-6本篇不具体介绍Markdown的语法。内容的介绍并不全面。但是对于一般写作使用来说足够了。另外本篇不介绍写邮件等需要额外插件的内容。如想了解。自行百度。文章目录Typora介绍Pandoc介绍Pandoc支持的文件格式安装步骤Typora的扩展语法和快捷操作快速生成目录脚注相关快捷

2021-01-12 11:24:42 533

原创 Linux程序设计(十五) 套接字

创建套接字socket系统调用创建一个套接字并返回一个描述符,该描述符可以用来访问该套接字。#include<sys/types.h>#include<sys/socket.h>int socket( int domain , int type , int protocol );domain参数指定协议族,type参数指定这个套接字的通信类型,protocol参数指定使用的协议。domain参数可以指定的协议族:域 说明 AF_UNIX

2020-10-24 14:36:44 295

原创 设计模式:可复用面向对象软件的基础 ( 4 ) Factory Method 工厂方法 (对象创建型模式)

定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。

2020-10-24 14:35:29 104

原创 反汇编(五)C/C++ 结构体与类(3)--虚函数和纯虚函数的本质以及原理(1)

虚函数是面对对象程序设计的关键组成部分。构造函数和析构函数的识别流程稍微简单,而且,在类中定义了虚函数之后,如果没有提供默认的构造函数,编译器必须提供默认的构造函数.对象的多态性需要通过虚表和虚表指针来完成,虚表指针被定义在对象首地址的前4个字节处。因此虚函数必须作为成员函数使用,由于非成员函数没有this指针,所以无法获得虚函数指针。也没办法访问虚函数、虚函数的机制:当类中定义有虚函...

2019-09-19 19:11:31 744

原创 反汇编(六)C/C++ 结构体与类(4)--从内存角度再谈多态、多重继承、菱形继承

目录 1.识别类和类之间的关系1.1 虚函数1.2虚函数特性的失效2.多重继承3.抽象类(纯虚函数的实现原理在这里补充)4.菱形继承类之间的关系与现实社会非常相似。类的继承和派生是一个从抽象到具体的过程。 什么是抽象到具体的过程?以 “生物” 为例子,生物仅仅代表是一个概念。从某种程度上,它是抽象的。我们无法知道这是一个怎么样的一个东西,什么样...

2019-08-15 06:39:37 480

原创 反汇编(四)C/C++ 结构体与类(2)--构造函数和析构函数出现的时机

构造函数与析构函数是类的重要组成部分。构造担任数据初始化,析构担任对象销毁时释放对象中申请的资源。对象生成时会自动调用构造函数。只要找到了定义对象的地方就找到了构造函数的调用时机。但是真实情况不是这样的。这些受到对象的生命周期的影响。构造函数出现的时机不同。1.局部对象2.堆对象3.参数对象4.返回对象5.全局对象6.静态对象先来看看局部对象的构造函数出现的时机。...

2019-08-12 12:05:32 278

原创 反汇编(三)C/C++ 结构体与类(1)--this指针、类成员与类成员函数

类的内容有点多,分章节研究结构体跟类1.结构体跟类结构体跟类本质上没有太大区别,只是结构体成员默认为public的,而类则是private。这里直接省去了结构体的反汇编。直接看类。#include<iostream>using namespace std;class A{public: /* 以下数据成员探讨 一个类的大小由什么决定 以及数...

2019-07-24 23:28:38 425

原创 反汇编(二)C/C++ 探究 ifelse语句跟switch的区别 以及 在有些情况下switch性能更优的原因

这篇文章讲述了if else语句,switch语句的底层原理。且比较了两者间的区别以及编译器对switch语句的优化。其实计算机并不认识if,else等语句,这不过是高级语言为了提高开发效率而生成的中间产物。那么if (XXX > YYY)在汇编的角度去看,计算机做了运算,把XXX与YYY相减(相当于 X + YYY的补码。因为计算机只会做加法),结果会影响标志寄存器(真实存在的硬...

2019-07-04 20:37:24 593

原创 反汇编(一)C/C++变量、常量、指针和引用在内存中的表现形式

高级语言隐藏了太多信息。这一篇用汇编来直观探究 C/C++ 变量,函数,类,继承等等再内存中是怎么表示的先来看这样一段代码,分为三个部分。先准备好三个部分准备反汇编。1.defineVar() 函数内解释 变量在内存中的表现形式2. varPtr() 函数内解释指针与引用在内存中的表现形式3.constdefine()函数内解释const与define的区别跟在内存中的表现形...

2019-06-27 13:35:37 974

原创 类的设计(四) 作为接口的模板与泛型算法

解决问题的过程就是数据抽象的过程。对于一个函数来说,它的任务是为了完成某个特定的工作,通常我们称为功能模块。注意是特定。通常模块化是有效的,它可以更好的提高效率。那么抽象模块化可能就相当于意味着使工作不再变得特定。它将变得更加通用(也就是进一步抽象)。打个例子,这里有一个数组求和的代码,以便思考,可以运用到其他地方(例子会越来越抽象):int sum(int * p,int n){ ...

2019-06-14 14:43:04 245

原创 类的设计(三) 数据抽象、动态绑定、继承和句柄类的 应用示例1+反思

感想:虽然有这种设计思想,但是倘若问题稍微抽象一点或细化一点,就可能想不到继承,多态的思想。这篇总结给出一个小示例,顺便总结前两节。问题描述: 算数表达式的树。例如,表达式(-5)*(3+4)对应的树为: 需求为:创建这样的树,然后打印该树的完整括号,另外用户不想为这些表达式的表现形式操心,更不想关心有关内存分配和回收的事宜。例如:...

2019-06-03 23:28:26 152

原创 类的设计(二):句柄类

代理类能让我们在一个容器中类型不同但相互关联的对象,这种方法毒药为每个对象创建一个代理,并要将代理储存在容器中,创建代理将会复制所代理的对象,就像复制代理一样。但是,如果想避免复制该怎么做呢?对于某些类来说,能够避免复制其对象是很有好处的。有时候对象可能很大,复制起来消耗很大。打个比方:假设有一天,电视台准备组织一个 XXX棋 复盘解说。我们用一个vector对象来代表棋盘...

2019-05-29 23:54:20 193

FFmpeg硬件加速.md

FFmpeg硬件加速,NVIDIA

2021-06-14

空空如也

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

TA关注的人

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