`
weiyuhu
  • 浏览: 231804 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
文章列表
题目:     已知strcpy函数的原型是:         char * strcpy(char * strDest,const char * strSrc);     1.不调用库函数,实现strcpy函数。     2.解释为什么要返回char *。     解说:     1.strcpy的实现代码         char * strcpy(char * st ...
int   strcmp(const   char   *s1,   const   char*s2)    {        char*   p1;        char*   p2;        p1=s1;        p2=s2;        while((*p1)&&(*p2))        {            if(*p1==*p2)            {                p1++;p2++;            }else{                return   (*p1-*p2);       ...

好的博客

http://blog.csdn.net/embeddedsoft
如果一个变量的值可能会被程序操作之外的其它操作所改变,那么你必需用volatile 声明。在嵌入式系统中其它操作是:中断服务程序的操作、硬件动作的操作。用volatile声明的变量是不会被编译器优化掉的 例如: #define PortA ( * ( volatile unsigned int * )  0x0000 )          这样 PortA 成为一个地址在0x0000的unsigned char类型变量。这个定义看起来很复杂,其实它也可以分解成几个很简单的部分来看。 ( volatile unsigned int * )是C语言中的强制类型转换,它的作用是把0x0000这个纯 ...
在很多机器上,比如Cell,要求数据结构必须128位对齐。这就对数据结构的定义提出了额外的要求。 一种较直观的方法是:在数据结构中添加pad字节,使得整个数据结构填充为128位,例如: typedef struct _alf_error_msg{     int error_code;     int error_type;     int extra_error_code;     int error_handle_policy;     unsigned char _pad[128 - 4*4]; } error_msg; 其中_pad数组既是为了使整个数据结构达到128位字节而额外填 ...
在嵌入式系统中,一般不建议使用union结构,因为union结构中的各个成员之间存在相互影响,容易滋生问题。可见,union也是把双刃剑。懂得使用它的人可以做到“削铁如泥”,而不懂得使用它的人很可能会被其所伤。下面介绍的几种方法都是嵌入式系统常用的几种技巧。如果熟练掌握,将来定有所用。 1.all的使用 使用all的数据结构模型: typedef _my_union {   unsigned int all;   /*sizeof(my_union.my_struct)必须与sizeof(my_union.all)相等*/   struct   {     ...   }my_s ...
http://www.yuanma.org/data/2009/0720/article_3712.htm
ffmpeg 中的Libavformat 和 libavcodec库是访问大多数视频文件格式的一个很好的方法。不幸的是,在开发您自己的程序时,这套库基本上没有提供什么实际的文档可以用来作为参考(至少我没有找到任何文档),并且它的例程也并没有 ...
  原文地址:http://www.ibm.com/developerworks/cn/linux/l-audio/ 虽然目前Linux的优势主要体现在网络服务方面,但事实上同样也有着非常丰富的媒体功能,本文就是以多媒体应用中最基本的声音为对象,介绍如何在Linux平台下开发实际的音频应用程序,同时还给出了一些常用的音频编程框架。 一、数字音频 音频信号是一种连续变化的模拟信号,但计算机只能处理和记录二进制的数字信号,由自然音源得到的音频信号必须经过一定的变换,成为数字音频信号之后,才能送到计算机中作进一步的处理。 数字音频系统通过将声波的波型转换 ...
本文将带您了解一些良好的和内存相关的编码实践,以将内存错误保持在控制范围内。内存错误是 C 和 C++ 编程的祸根:它们很普遍,认识其严重性已有二十多年,但始终没有彻底解决,它们可能严重影响应用程序,并且很少有 ...
C代码优化方案 华中科技大学计算机学院 姓名:    王全明 QQ:       375288012 Email:     quanming1119@163.com 目录 目录__ 2 C代码优化方案__ 4 1、选择合适的算法和数据结构__ 4 2、使用尽量小的数据类型__ 5 3、减少运算的强度__ 5 (1)、查表(游戏程序员必修课)_ 5 (2)、求余运算__ 6 (3)、平方运算__ 6 (4) ...
、设置显示选项     GDB中关于显示的选项比较多,这里我只例举大多数常用的选项。     set print address     set print address on         打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如:                (gdb) f         #0  set_quotes (lq=0x34c78 "<<", rq=0x34c88 ">>")             at input.c:530         530      ...
查看源程序 ————— 一、显示源代码     GDB 可以打印出所调试程序的源代码,当然,在程序编译时一定要加上-g的参数,把源程序信息编译到执行文件中。不然就看不到源程序了。当程序停下来以后,GDB会报告程序停在了 ...
四、维护停止点 上面说了如何设置程序的停止点,GDB中的停止点也就是上述的三类。在GDB中,如果你觉得已定义好的停止点没有用了,你可以使用delete、clear、disable、enable这几个命令来进行维护。     clear         清除所 ...
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。所谓“寸有所长,尺有所短”就是这个道理。 一般来说,GDB主要帮忙你完成下面四个方面的功能:     1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。     2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)     3、当程序被停住时,可以检查此时你的程序中所发生的事。     4、动态的改变你程序的执行环境。 从上 ...
Global site tag (gtag.js) - Google Analytics