2011年12月9日

摘要: VC下Debug和Release区别VC下Debug和Release区别最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致后面处理异常。网上查找了些资料,在这罗列汇总下,做为备忘~一、Debug 和 Release 的区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用。 De 阅读全文

posted @ 2011-12-09 14:29 无忧consume 阅读(195) 评论(0) 推荐(0) 编辑

摘要: HTTP请求模型一、连接至Web服务器一个客户端应用(如Web浏览器)打开到Web服务器的HTTP端口的一个套接字(缺省为80)。例如:http://www.myweb.com:8080/index.html在Java中,这将等同于代码:Soceet socket=new Socket("www.myweb.com",8080);InputStream in=socket.getInputStream();OutputStream out=socket.getOutputStream();二、发送HTTP请求通过连接,客户端写一个ASCII文本请求行,后跟0或多个HTTP头 阅读全文

posted @ 2011-12-09 14:19 无忧consume 阅读(170) 评论(0) 推荐(1) 编辑

摘要: VC中DEBUG版本可以正常运行的程序有时无法在RELEASE版本下运行在VC中当整个工程较大时,软件时常为出现在DEBUG状态下能运行而在RELEASE状态下无法运行的情况。由于开发者通常在DEBUG状态下开发软件,所以这种情况时常是在我们辛苦工作一两个月后,满怀信心的准备将软件发行时发生。为了避免无谓的损失,我们最好进行以下的检查:1、时常测试软件的两种版本。2、不要轻易将问题归结为DEBUG/RELEASE问题,除非你已经充分对两种版本进行了测试。3、预处理的不同,也有可能引起这样的问题。出现问题的一种可能性是在不同版本的编译间定义了不同的预处理标记。请对你的DEBUG版本的软件试一下以 阅读全文

posted @ 2011-12-09 13:40 无忧consume 阅读(996) 评论(0) 推荐(0) 编辑

摘要: 讲讲volatile的作用一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:1).并行设备的硬件寄存器(如:状态寄存器)2).一个中断服务子程序中会访问到的非自动变量(Non-automaticvariables)3).多线程应用中被几个任务共享的变量回答不出这个问题的人是不会被雇佣的。我认为这是区分C程序员和嵌入式系统程序员的最基本的问题。嵌入式系统程序员经常同硬件、中断、RTOS等等打交道,所 阅读全文

posted @ 2011-12-09 13:36 无忧consume 阅读(170) 评论(0) 推荐(0) 编辑

只有注册用户登录后才能阅读该文。 阅读全文

posted @ 2011-12-09 13:31 无忧consume 阅读(1) 评论(0) 推荐(0) 编辑

摘要: Debug与Release版本的区别 Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来。当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等。习惯上,我们仍然更愿意使用VC已经定义好的名称。 Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。至于是否需要DLL支持,主要看你采用的编译选项。如果是基于 ATL的,则Debug和Release版本对DLL的要求差不多。如果采用的编译选项为使用MF 阅读全文

posted @ 2011-12-09 12:54 无忧consume 阅读(322) 评论(0) 推荐(0) 编辑

摘要: assert宏的原型定义在assert.h中,其作用是如果它的条件返回错误,则终止程序执行. 原型定义: 1 #include "assert.h"2 void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。 请看下面的程序清单badptr.c: 01 #include02 #include03 #include04 int main( void )05 {06 FILE *fp;07 08 fp = fo 阅读全文

posted @ 2011-12-09 12:37 无忧consume 阅读(924) 评论(0) 推荐(0) 编辑


Copyright © 2024 无忧consume
Powered by .NET 9.0 on Kubernetes