- 博客(26)
- 资源 (4)
- 收藏
- 关注
原创 【markdown】优快云 markdown语法
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2022-03-29 14:47:45
250
原创 【 SpeechAlgorithms 通话的算法】
数字信号处理网址链接地址链接地址链接: 网络地址.https://github.com/Ryuk17/SpeechAlgorithms
2022-01-12 09:41:16
261
原创 获取IP地址
#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <string.h>#include <netdb.h>#include <sys/types.h>#include <netinet/in.h>#include <s...
2020-02-17 10:52:49
234
转载 HIDReadFile使用
http://bbs.youkuaiyun.com/topics/390691197看过一个文章“Windows主机端与自定义USB HID设备通信详解”,有这样一段文字。1 、 ReadFile 的调用不会引起设备的任何反应,即 HID 设备与主机之间的中断 IN 传输不与 ReadFile 打交道。实际上主机会在最大间隔时间(由设备的端点描述符来指定)内轮询设备,发出中断 IN 传输的请求。“读取...
2018-09-14 13:55:35
1393
1
转载 Linux kernel panic解决方法
Linux kernel panic解决方法kernel panic错误表现kernel panic 主要有以下几个出错提示:Kernel panic-not syncing fatal exception in interruptkernel panic - not syncing: Attempted to kill the idle task!kernel panic - not sync
2017-09-19 09:33:47
4968
1
原创 ALSADMA缓冲区分析
ALSA应用程序(播放器)调用ALSA lib库中的函数snd_pcm_writei()向声卡硬件(或虚拟的)写入交错(write后的i代表interleaved)数据。在ALSA lib中最后会调到snd_pcm_hw_writen(snd_pcm_t *pcm, void **bufs, snd_pcm_uframes_t size)函数,这个函数调用通用的ioctl接口:snd_pcm_li
2017-09-19 09:02:12
2514
转载 字符串哈希函数
字符串哈希函数 基本概念所谓完美哈希函数,就是指没有冲突的哈希函数,即对任意的 key1 != key2 有h(key1) != h(key2)。设定义域为X,值域为Y, n=|X|,m=|Y|,那么肯定有m>=n,如果对于不同的key1,key2属于X,有h(key1)!=h(key2),那么称h为完美哈希函数,当m=n时,h称为最小完美哈希函数(这个时候就是一一
2016-08-25 21:24:27
321
原创 云盘揭秘
我想要为每个用户提供 1G 的网络存储空间。如果服务器上有一颗 1000G 的硬盘可以全部为用户提供数据储存,如果每个用户分配 1G 的最大储存空间,那么能分配给多少个用户使用呢?你一定说是 1000/1=1000 个用户。但事实上你这么分配了,你会发现每个用户平时根本不会上传 1G 的东西将容量占的满满的,有多有少,但平均用户平时只上传 50M 的文件,也就是说,你将 1000G 的硬盘分给 1
2016-08-12 21:08:13
403
转载 C++ 构造/析构函数中调用虚函数的问题
先看一段一下代码:#include "stdafx.h"using namespace std; class ClassA{public: ClassA(){ cout<<"ClassA::ClassA() begin"<<endl; Print(); cout<<"ClassA::ClassA() end"<<endl;; }
2016-06-15 16:36:39
383
转载 C++中关于全局对象的初始化顺序
在stackoverflow上看到下面这样一个问题: 这个问题很简单,意思就是两个全局不同类的instance,其中一个依赖另一个,怎么确保他们的构造顺序。也就是说O2依赖于o1,o2被实例化之前,我们要确保o1一定要被构造出来,或者说初始化。就上面来看,如果这样两个全局变量o1和o2在同一个编译单元,说白了就是在同一个cpp文件里,那么编译器会保证按照他们出现的顺序初始化。但是如果这样两个全局变
2016-06-15 15:35:53
838
转载 C++中虚析构函数的作用
我们知道,用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() { cout<<"disconstruct base"<<endl; }; virtual v
2016-06-15 11:16:08
466
转载 虚函数和纯虚函数的区别
首先:强调一个概念 -定义一个函数为虚函数,不代表函数为不被实现的函数。 -定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。 -定义一个函数为纯虚函数,才代表函数没有被实现。 定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。 1、简介 假设我们有下面的类层次:class A { public: vi
2016-06-15 10:32:48
241
原创 C++ explicit关键字详解
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用explicit关键字的类声明, 即默认为
2016-06-14 20:03:18
448
1
转载 类的静态成员函数带来了什么好处,应该在什么时候使用?
函数的行为对所有派生类都一致时,可以声明为静态。静态成员函数的作用基本上相当于一个带有命名空间的全局函数。 如一个数学类定义了一些函数 都可以声明伪静态的 Math.sin(x)等好处很多,但所有的好处都是基于:它跟类的实例无关,只跟类有关,不需要this指针。 至于可重入问题,非静态成员函数也有啊。为什么单单问静态函数的可重入问题。 比如: (1)可以实现某些特殊的设计模式:如Sing
2016-06-14 19:43:24
354
转载 new内存失败后的正确处理
应该有很多的程序员对比尔盖茨的这句话有所耳闻:对于任何一个人而言,640KB应当是足够的了。(640K ought to be enough for everybody.)不幸的是,伟大的比尔盖茨也失言了。随着硬件水平的发展,内存变得越来越大,但是似乎仍不能满足人们对内存日益增长的需求。所以呢,我们C/C++程序员在写程序时也必须考虑一下内存申请失败时的处理方式。通常,我们在使用new进行内存分配的
2016-06-14 19:19:39
605
原创 宏在C++中的替代解决方案
宏在C++中的替代解决方案1. 常量定义例如:#define NUM 100替换为const int NUM = 100;const常量放在头文件中,也不必担心存在多个实例的问题,对于const修饰的变量,编译器一般也会对其进行优化,不会出现多重定义的问题。C语言中还有一个特殊的常量定义:NULL。其一般的定义为 #define NULL 0,指针的内容却是一个整型,这不符合常理。所以在C++11中
2016-06-14 19:02:04
367
转载 C++中的static关键字
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。 一、面向过程设计中的static 1、静态全局变量 在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:#include<iostream> usi
2016-06-14 17:07:37
166
原创 C++类和结构体的区别
在C中,结构体只能有变量不能有方法。 在C++中,实际上,类与结构的惟一区别在于:在默认状态下,结构的所有成员均是公有的,而类的所有成员是私有的。除此之外,类与结构是等价的,也就是说,一个结构定义了一个类的类型。C++同时包含这两个等价的关键字struct与class基于3个方面的原因。 - 第一,加强结构的能力。在C中,结构提供了一种数据分组方法,因而让结构包含成员函数是一个小小的改进。 -
2016-06-12 22:03:08
457
原创 谈谈你对面向对象编程的认识
面向对象设计的出发点? 面向对象的编程语言设计的出发点就是为了能更直接的描述客观世界中存在的事物(即对象)以及它们之间的关系。什么是面向对象的编程语言? 面向对象的编程语言将客观事物看做具有属性和行为(或称服务) 的对象,通过抽象找出同一类对象的共同属性(静态特征)和行为(动态特征),形成类。结构化程序设计的思路? 结构化程序设计的思路是:自顶向下、逐步求精;其程序结构是按功能划分为若干个
2016-06-12 20:53:23
696
转载 浅谈C++中指针和引用的区别
浅谈C++中指针和引用的区别 指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而
2016-06-12 15:54:28
190
转载 const实现机制
以下是一段C程序:const int a = 1; int* b = (int*)&a; *b = 31; 以上代码是可以编译通过并且能够成功运行的,运行后a b的值均为31。在C中,const修饰的变量不能够被修改,在反汇编后,有const修饰的变量和没有const修饰的变量的结果是一样的。但是如果在程序中对const变量进行修改,编译时就会报错,如:const int a = 1;a = 2
2016-06-11 21:54:49
2058
转载 C++的函数重载
C++的函数重载 ——每个现象后面都隐藏一个本质,关键在于我们是否去挖掘写在前面:函数重载的重要性不言而明,但是你知道C++中函数重载是如何实现的呢(虽然本文谈的是C++中函数重载的实现,但我想其它语言也是类似的)?这个可以分解为下面两个问题1、声明/定义重载函数时,是如何解决命名冲突的?(抛开函数重载不谈,using就是一种解决命名冲突的方法,解决命名冲突还有很多其它的
2016-06-11 20:57:39
311
转载 内联函数和宏定义的区别
用内联取代宏:1.内联函数在运行时可调试,而宏定义不可以; 2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 3.内联函数可以访问类的成员变量,宏定义则不能; 4.在类中声明同时定义的成员函数,自动转化为内联函数。文章(一)内联函数与宏定义 在C中,常用预处理语句#define来代替一个函数定义。例如: #define MA
2016-06-07 21:35:25
264
圈圈教你玩USB.pdf
2018-08-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人