- 博客(14)
- 资源 (24)
- 收藏
- 关注
转载 C语言:命令行选项解析函数---getopt()和getopt_long()
上午在看源码项目 webbench 时,刚开始就被一个似乎挺陌生函数 getopt_long() 给卡住了,说实话这函数没怎么见过,自然不知道这哥们是干什么的。于是乎百度了一番,原来是处理命令行选项参数的,的确,正规点的大型程序一般第一步就是处理命令行参数的,接着才是主干程序。在百度和 man 的帮助下,找到了具体使用方法和解释,二话不说赶紧学习一下,并总结出文档记录一下。平时在写程序时常常需要...
2019-12-19 16:20:51 982
转载 C语言:断言assert函数完全攻略
对于断言,相信大家都不陌生,大多数编程语言也都有断言这一特性。简单地讲,断言就是对某种假设条件进行检查。 在 C 语言中,断言被定义为宏的形式(assert(expression)),而不是函数,其原型定义在 <assert.h> 文件中。其中,assert 将通过检查表达式 expression 的值来决定是否需要终止执行程序。也就是说,如果表达式 expression 的值为假(即...
2019-12-19 14:11:51 15641 6
转载 C语言:二级指针(指向指针的指针)详解
摘自:《C语言入门》 http://c.biancheng.net/c/指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针类型的数据,例如 int *、double *、char * 等。如果一个指针指向的是另外一个指针,我们就称它为二级指针,或者指向指针的指针。假设有一个 int 类型的变量 a,p1是指向 a 的指针变量,p2 又是指向 p1 的...
2019-12-17 16:35:15 559
转载 C语言:堆和栈的区别是什么?
首先,讨论的堆和栈指的是内存中的“堆区”和“栈区”,OC语言是C语言的超集,所以先了解C语言的内存模型的内存管理会有很大的帮助。C语言的内存模型分为5个区:栈区、堆区、静态区、常量区、代码区。每个区存储的内容如下:1、栈区: 存放函数的参数值、局部变量等,由编译器自动分配和释放,通常在函数执行完后就释放了,其操作方式类似于数据结构中的栈。栈内存分配运算内置于CPU的指令集,效率很高,但是分配的内...
2019-12-17 16:22:58 677
转载 vim字符串替换
vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。替换:s/vivian/sky/ 替换当前行第一个 vivian 为 sky:s/vivian/sky/g 替换当前行所有 vivian 为 sky:n,$s/vivian/sky/ 替换第 n 行开始...
2019-12-17 16:17:14 234
原创 Git学习:git-rev-parse命令初识
git rev-parse --git-dir //显示版本库.git命令所在的位置执行命令 git rev-parse --git-dirgit rev-parse --show-toplevel //显示工作区根目录执行命令 git rev-parse --show-toplevelgit rev-parse --show-prefix //显示相...
2019-12-16 19:11:00 4060
转载 编译和链接的过程
参考:https://www.cnblogs.com/linhaostudy/p/8808967.html程序要运行起来,必须要经过四个步骤:预处理、编译、汇编和链接。接下来通过几个简单的例子来详细讲解一下这些过程。对于上边用到的几个选项需要说明一下。使用 gcc 命令不跟任何的选项的话,会默认执行预处理、编译、汇编、链接这整个过程,如果程序没有错,就会得到一个可执行文件,默认为a.out...
2019-12-16 16:56:17 421
转载 Linux 2.6内核Makefile浅析
1. 概述Makefile由五个部分组成:Makefile:根目录Makefile,它读取.config文件,并负责创建vmlinux(内核镜像)和modules(模块文件)。.config:内核配置文件(一般由make menuconfig生成)。arch/$(ARCH)/Makefile:目标处理器的Makefile。scripts/Makefile.*:所有kbuild Make...
2019-12-16 15:31:28 857
转载 Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC)
1. ASoC的由来ASoC--ALSA System on Chip ,是建立在标准ALSA驱动层上,为了更好地支持嵌入式处理器和移动设备中的音频Codec的一套软件体系。在ASoc出现之前,内核对于SoC中的音频已经有部分的支持,不过会有一些局限性:Codec驱动与SoC CPU的底层耦合过于紧密,这种不理想会导致代码的重复,例如,仅是wm8731的驱动,当时Linux中有分别针对4个...
2019-12-03 10:01:24 531
转载 Linux ALSA声卡驱动之四:Control设备的创建
1. Control接口Control接口主要让用户空间的应用程序(alsa-lib)可以访问和控制音频codec芯片中的多路开关,滑动控件等。对于 Mixer (混音)来说,Control接口显得尤为重要,从ALSA 0.9.x版本开始,所有的mixer工作都是通过control接口的API来实现的。ALSA已经为AC97定义了完整的控制接口模型,如果你的Codec芯片只支持AC97接口,你...
2019-12-02 19:10:08 903
转载 Linux ALSA声卡驱动之三:PCM设备的创建
1. PCM是什么PCM是英文Pulse-code modulation的缩写,中文译名是脉冲编码调制。我们知道在现实生活中,人耳听到的声音是模拟信号,PCM就是要把声音从模拟转换成数字信号的一种技术,他的原理简单地说就是利用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲,把这些脉冲的幅值按一定的精度进行量化,这些量化后的数值被连续地输出、传输、处理或记录到...
2019-12-02 16:54:58 3746
转载 Linux ALSA声卡驱动之二:声卡的创建
1. struct snd_card1.1. snd_card是什么snd_card可以说是整个ALSA音频驱动最顶层的一个结构,整个声卡的软件逻辑结构开始于该结构,几乎所有与声音相关的逻辑设备都是在snd_card的管理之下,声卡驱动的第一个动作通常就是创建一个snd_card结构体。正因为如此,本节中,我们也从 struct cnd_card开始吧。1.2. snd_card的定义s...
2019-12-02 15:18:38 1191 1
G711_G721_G723.7z
2020-03-06
.vimrc配置文件
2019-12-17
视频编解码学习之三:变换,量化与熵编码 - Mr.Rico - 博客园.pdf
2019-09-03
视频编解码学习之一:理论基础 - Mr.Rico - 博客园.pdf
2019-09-03
ISO base media file format.pdf
2019-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人