编程Debug
linpengbin
这个作者很懒,什么都没留下…
展开
-
C语言编译:error C2275
将C代码在VC++中编译,经常会出现error C2275错误,结果是变量的定义位置不对,应该在函数块的最前面。这是一个编程习惯的问题。在移植c++代码到c的时候,经常会出现一个奇怪的错误:“error C2275: “xxxxx”: 将此类型用作表达式非法”因此还会导致一大堆的未声明标识符。这个错误是由于c的编译器要求将变量的申明放在一个函数块的头部,原创 2015-01-27 21:41:06 · 1788 阅读 · 1 评论 -
Linux下出现launch failed.Binary not found的解决方案
Project->Properties->C/C++Build->Settings->Binary Parsers勾选GNU Elf Parser和Elf Parser然后千万千万别忘了Project->Build All (Ctrl+B), 再run(Ctrl+F11)如果看到项目下面出来一项名为Binaries, Congradulations! 配置成功,可以run了!原创 2016-01-05 20:45:10 · 2825 阅读 · 1 评论 -
Debug模式下正确,Release错误
今天在调HEVC项目代码时,发现Debug下码流可以正确解码,Relaese下出错。经过一番调试,发现问题是一个数组没有初始化导致的错误。 真正的原因是:Debug会给未初始化的变量自动初始化,Release不会。 平时写代码千万不要偷懒,该初始化就初始化,特别是数组的初始化。 下面的链接是关于Debug和Release模式下程序的差异,写得不错: http://www.cnblogs.co原创 2015-11-01 20:40:20 · 7113 阅读 · 0 评论 -
vs2010下Release版本调试代码设置
有时候代码在Debug正确,在Release版本下出错。此时需要在Release下调试程序,为了方便调试,我们需要把优化关掉。设置在Release模式下调试的方法:1.工程项目上右键 -> 属性2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)3.c++ -> 优化 -〉优化 选 禁止(/Od)4转载 2015-11-01 17:55:15 · 2873 阅读 · 0 评论 -
[转载]函数编写规范
一、可重入函数 1)什么是可重入性? 可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相 反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数 的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任 意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要 么在使用全局变量时保护自己转载 2015-09-04 21:34:42 · 911 阅读 · 0 评论 -
头文件应该怎么写
因为一个对象只能定义一次,能够声明多次,所以头文件最重要的规则是只声明,不定义(除少数对象外)。而且只声明其他文件需要用到的对象,其他文件不需要用到的对象没必要在头文件中声明。当其他文件需要用到本文件定义的一些对象时,我们可以将这些对象写到头文件中,其他文件只要include这个头文件即可使用相应的对象。头文件一般包含类的定义(不包含类定义外部的成员函数实现),extern变量声明,以及函数声明。要原创 2015-08-26 22:34:33 · 12558 阅读 · 0 评论 -
C编程规范(不断补充中)
1、双等号,常量在左,变量在右:常量放在双等号的左边,变量放在双等号右边。 编程规范反复强调要将变量放在双等号的右边,特别是在实际的项目中,更应该如此。在条件判断语句if中,如:if(2 == a) 写成: if(2 = a) 双等号写成赋值语句,变量在右,会报错。 写成: if(a = 2) 不会报错。在写if(null != a) 判断不等时,也应该遵循常量在左,变原创 2015-01-29 14:15:40 · 1095 阅读 · 1 评论 -
程序调试的利器—日志
时间 2014-03-02 20:53:09 周兆熊的专栏原文 http://blog.csdn.net/zhouzhaoxiong1227/article/details/20306727 如果世界上有一个人能够保证一次写出来的代码是百分之百正确的,那么毫无疑问,他一定是世界上最优秀的程序员,没有之一。为什么要求代码写好过后要进行充分的自测 ( 包括单元转载 2015-03-11 15:37:58 · 637 阅读 · 0 评论 -
给字符指针赋值, ” “双引号与' '单引号的区别
今天写demo,输出一个字符数组时,发现指针越界输出。回头一看,发现是这样给字符指针赋值的: char *cP_1 = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’}; 不严格的说,这样赋值并没有错,只是跟下面这种赋值方法有一些需要注意的区别: char *cP_2 = “abcde”; 这两种方法有什么区别呢?首先要明白” abcde”是一个字符串,它以’ \0 ’ 结尾,输原创 2015-02-05 16:39:19 · 2132 阅读 · 0 评论 -
OpenHEVC在Linux Eclipse 下的配置过程
从前段时间开始,由于项目需要,开始研究OpenHEVC. 于是在GitHub上面将OpenHEVC整个工程fork到我自己的账号下,并clone到了电脑上. 按照OpenHEVC的ReadMe文件上面的教程在终端界面很顺利就将OpenHEVC配置好,能够顺利解码. 接下来为了更好的调试阅读代码,打算将OpenHEVC在Eclipse里面配置,结果弄了蛮久才成功,下面将在Eclipse上的原创 2016-01-05 20:55:32 · 1225 阅读 · 0 评论