编程技术
文章平均质量分 80
zsJum
c/c , VOIP, 视频音频流媒体, 视频会议
展开
-
IT项目管理-----给年轻工程师的十大忠告
给年轻工程师的十大忠告 诸位,咱当电子工程师也是十余年了,不算有出息,环顾四周,也没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师妹们提个醒,希望他们比咱们强![1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐转载 2008-04-14 14:51:00 · 1318 阅读 · 0 评论 -
线程池浅析及C++代码实现
线程池浅析及C++代码实现(1)什么是线程池线程池是一种多线程处理技术。线程池先创建好若干线程,并管理这些线程。当有新的任务到来时,将任务添加到一个已创建的空闲线程中执行。线程池所创建的线程优先级都是一样的,所以需要使用特定线程优先级的任务不宜使用线程池。(2)线程池的优点和应用线程池统一管理线程的方式减少了频繁创建和销毁线程的系统调度开销,很大程度上提高了服务器处理并发任务的性能原创 2011-11-13 21:18:09 · 1635 阅读 · 0 评论 -
(翻译)设计Qt风格的C++的应用程序接口
"Designing Qt-Style C++ APIs" by Matthias Ettrich http://doc.trolltech.com/qq/qq13-apis.html翻译这篇文章的目的不是让人了解Qt,而是让人试着学习点C++编程的软技能。我从原文中得到的一些风格上的体会,也希望你能从中有所收获.(译者注)我们在Trolltech做了大量研究来改进Qt转载 2008-05-13 15:35:00 · 1041 阅读 · 0 评论 -
Gcc总体选项列表
Gcc总体选项列表后 缀 名 所对应的语言-c 只是编译不链接,生成目标文件“.o”-S 只是编译不汇编,生成汇编代码-E 只进行预编译,不做其他处理-g 在可执行程序中包含标准调试信息-o file原创 2008-01-03 11:24:00 · 1473 阅读 · 0 评论 -
调用约定 C++对照及汇编详解
_cdecl(C declration)是C语言函数的默认调用约定规则,也是VS编译器函数默认的调用约定规则,参数从右到左依次push入栈。需要调用者手动平衡栈。使用__cdecl编定规则之后,传递了多少参数和什么类型的参数,被调用者都不会知道,即使不同参数个数和类型都不会产生编译期的错误(PS:以上是指C代码中,C++因为函数名与参数直接关联,所以在编译期是会产生错误)C++及汇编解析声原创 2012-02-22 15:20:53 · 1675 阅读 · 0 评论 -
Speex之一-介紹Speex
Speex之一-介紹Speex介紹SpeexSpeex編解碼器(www.speex.org)存在是因為有這麼一個需求,即是開源同時專利版權也是免費的。這應該也是各開源軟體的必要條件。本質上講,Speex是針對語音的,vorbis是針對語音/音樂的。不像很多基它編碼,Speex不是為移動手機設計的,而是為網絡和VOIP應用設計的。文件壓縮當然也技持。Speex設計得很靈活,支持很寬範圍的語音翻译 2012-04-20 17:38:43 · 8260 阅读 · 3 评论 -
Speex之四--编码器/解码器命令行
Speex的基本描述包括一个命令行编码器和解码器. 那些工具产生和读包装在OGG容器的Speex文件.虽然它是可以封装Speex在任意容器的,但Ogg被推荐为文件的容器的.本段描述如何为Ogg的Speex文件使用命令行工具4.1 speexencSpeexenc单元是通过裸PCM或wave文件被使用于创建Speex文件. 可使用下面命令:speexenc [操作] input_fi翻译 2012-05-21 09:35:44 · 4743 阅读 · 0 评论 -
浅谈异步IO各模型优缺点
本文只讨论OverLapped I/O的三种异步模型及完成端口,像select、SWASelect不作讨论,讨论顺序从劣到优,方便于循序渐进地对比,更容易区分各模型之间的差别。1. OverLapped I/O 设备内核对象模型,这种模型虽然采用异步,但为了知道对象是否触发,需要一直挂起线程,换个角度来说,与同步的差异不大2. OverLapped I/O 事件内核对象模型,这模型原创 2013-10-08 15:27:54 · 7036 阅读 · 0 评论 -
C/C++内存终极处理方法(夸张点,推荐)
C/C++内存终极处理方法(夸张点,推荐) C/C++动态分配给我们带来了很多方便,但同时,也给我们带来了无限的烦恼。 1. 在嵌入式中 嵌入式开发内存本来就不是很足够,过于频繁的动态生成和释放,导致内存碎片过多占用内存。最终降低了程序性能和稳定性。 2. 在比较大型或自己不是很了解的源码中 内存泄漏的问题在C/C++编程中是经常要面对的,对于原创 2007-11-18 21:38:00 · 4392 阅读 · 3 评论 -
MySQL实用命令
(一) 连接MYSQL:mysql -h主机地址- 1、例1:连接到本机上的MYSQL 首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:/mysql/bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:m转载 2007-12-06 13:55:00 · 1047 阅读 · 0 评论 -
堆和栈的区别
一、预备知识―程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap)― 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。转载 2007-11-06 17:13:00 · 1288 阅读 · 2 评论 -
通过一段汇编,加深对寄存器ESP和EBP的理解
一直对寄存器ESP和EBP的概念总是有些混淆,查看定义ESP是栈顶指针,EBP是存取堆栈指针。还是不能很透彻理解。之后借于一段汇编代码,总算是对两者有个比较清晰的理解。下面是按调用约定__stdcall 调用函数test(int p1,int p2)的汇编代码;假设执行函数前堆栈指针ESP为NNpush p2 ;参数2入栈, ESP -= 4h , ESP = NN - 4h原创 2011-01-05 09:08:00 · 32210 阅读 · 4 评论 -
C++编程规范
C++编程规范1. 文件结构每个C++/C 程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现( implementation),称为定义( definition)C++/C 程序的头文件以“.h”为后缀,C 程序的定义文件以“. c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”转载 2008-05-09 16:27:00 · 1974 阅读 · 0 评论 -
编写简单Makefile (一)
Makefile 编写简单(一) --单一的C工程 编写一个自己工程需要的Makefile其实很简单,以下是一个俺的一个实例,包含了中英文注释,小看一下,应该就很快明白了,要求不多的话,一个Makefile几句就能搞定,详细请查看Gcc参数设置和Makefile规则。1. 工程文件的分布./Makefile---原创 2007-12-24 22:24:00 · 5179 阅读 · 1 评论 -
VC使用CRT调试功能来检测内存泄漏
C/C++ 编程语言的最强大功能之一便是其动态分配和释放内存,但是中国有句古话:“最大的长处也可能成为最大的弱点”,那么 C/C++ 应用程序正好印证了这句话。在 C/C++ 应用程序开发过程中,动态分配的内存处理不当是最常见的问题。其中,最难捉摸也最难检测的错误之一就是内存泄漏,即未能正确释放以前分配的内存的错误。偶尔发生的少量内存泄漏可能不会引起我们的注意,但泄漏大量内存的程序或泄漏日益增多的转载 2007-10-30 16:38:00 · 1190 阅读 · 0 评论 -
TCP/IP详解读书笔记(第一章)
第1章 概述TCP/IP起源于60年代末美国政府资助的一个分组交换网络研究项目,到90年代已发展成为计算机之间最常应用的组网形式。分层网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。一个协议族,比如TCP/IP,是一组不同层次上的多个协议的组合。TCP/IP通常被认为是一个四层协议系统,每一层负责不同的功能:1) 链路层,有时也称作数据链路层或网络接口层,通常包括转载 2008-06-19 13:52:00 · 1297 阅读 · 0 评论 -
Makefile 简单编写(二)
Makefile 简单编写(二) ――静态库 很多基本上都和Makefile 简单编写(一)一样,只是最后产生库时有所不一样。ar rcs libstaticlib.a $(OBJECT_O) ar指令将全部*.o文件创建生库ar命令可以用来创建、修改库,也原创 2008-01-03 09:31:00 · 5801 阅读 · 0 评论 -
剖析共享程序库
来源:http://www.ibm.com/developerworks/cn/linux/l-shlibs.html共享程序库通过版本号来完成对应用程序所使用的程序库的升级,同时保留了对原有应用程序的兼容。本文将讨论此方法的实际内幕,以及在常规 Linux™系统上的 /usr/lib 中有很多符号链接的原因。 共享程序库是现代 UNIX®系统中有效利用空间和资源的基础转载 2007-12-23 21:48:00 · 1116 阅读 · 0 评论 -
Android平台,C/C++代码内存对齐问题(signal SIGBUS Error)
最近手机版本老出现崩溃,之前出现过,但很偶然。最近出现机率比较高,就跟查一下。报了signal SIGBUS BUS Error,最终定位在uint32_t i32 = *((uint32_t*)m_data); 这句语出了问题, 确认m_data内存是正确的,并且在PC机上运行是正常的。后面查到原因是x86架构CPU是支持内存非对齐访问,而手机的CPU采用的是RISC架构,为了提高访原创 2014-02-17 20:46:12 · 8287 阅读 · 0 评论