上一页 1 ··· 4 5 6 7 8
  2013年3月11日
摘要: 1.使用gdb编译必须在编译选项中加上-g: g++ -g hello.cpp -o hello2.使用gdb调试的方法: (1)gdb ./hello (2)gdb ./hello hello.core (3)gdb ./hello PID3.gdb帮助: (1)help:打出命令的类别 (2)help command:打出具体某命令的使用方法 (3)在gdb执行shell命令:shell command4.gdb常用命令: l(ist),b(reak),n(ext),s(tep),r(un),c(ontinue),p(rint),bt,finish,q(uit) 回车:重复... 阅读全文
posted @ 2013-03-11 22:14 guoxiang 阅读(142) 评论(0) 推荐(0) 编辑
  2013年3月10日
摘要: 返回值的规则规则(1)函数名字与返回值类型在语义上不可冲突;规则(2)不要将正常值和错误标志混在一起返回。正常值用输出参数获得,而错误标记用return语句返回;违反上述两条的典型反例:C的标准库函数:int getchar()建议(1)有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值;如strcpy函数,可以strlen(strcpy(str, "HelloWorld"))建议(2)如果函数的返回值是一个对象,有些场合用“引用传递”替换“值传递”可以提高效率。而有些场合只能用“值传递”而不能用“引用传递”,否则会出错。函数内部实现的规则规则(1) 阅读全文
posted @ 2013-03-10 21:11 guoxiang 阅读(179) 评论(0) 推荐(0) 编辑
摘要: const比#define的优点:(1)const有数据类型,而宏定义没有,编译器可以对前者进行安全检查,而后者只能进行字符替换,没有类型安全检查,并且字符替换可能产生意想不到的错误(替换时的括号);(2)有些集成化的调试工具可以对const常量进行调试,而不能对宏常量进行调试。(const常量的值应该可以用gdb print出来)。类中的const数据成员的初始化只能在类构造函数的初始化列表中进行。关于枚举常量? 阅读全文
posted @ 2013-03-10 20:09 guoxiang 阅读(111) 评论(0) 推荐(0) 编辑
摘要: flag与零值比较:(1)bool flagif(flag) if(!flag)(2)int flagif(flag == 0) if(flag != 0)(3)浮点型if((flag >= -EPSINON) && (flag <= EPSINON)) if((flag < -EPSINON) || (flag > EPSINON))EPSINON:精度 0.1 0.001 0.000001均可(4)指针if(flag == NULL) if(flag != NULL)循环语句的效率:(1)在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的放 阅读全文
posted @ 2013-03-10 16:21 guoxiang 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 头文件:#include <filename.h>: 引用标准库的头文件(编译器自带的头文件),编译器从标准库目录开始搜索#include "filename.h": 引用非标准库的头文件,从用户的工作目录开始搜索,在工程指定的头文件目录下搜索。如果找不到,应该还会在PATH路径下找。头文件的作用:(1)通过头文件调用库功能。用户只要按照头文件调用库接口,而不必关心接口的实现。(2)头文件能加强类型检查。如果某接口被实现或被调用时,其方式与头文件不同,编译器就会指出错误,会减轻程序员负担。关于第二条的理解:是不是如果没有头文件,a.cpp里面调用b.cpp里的b 阅读全文
posted @ 2013-03-10 15:55 guoxiang 阅读(162) 评论(0) 推荐(0) 编辑
摘要: GStreamer是一个基于流水线的多媒体框架,基于GObject(GLib),以C语言写成。在该媒体处理框架将多媒体数据流处理划分成各种能够自由组合重用的节点,然后将节点组合成串行处理的媒体处理链。 Gstreamer通过把若干elements链接在一起构成pipeline实现对媒体内容的处理,e 阅读全文
posted @ 2013-03-10 13:23 guoxiang 阅读(525) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8