
C/C++
文章平均质量分 62
tatbaby
...
展开
-
VC调试入门
VC调试入门作者:阿荣 概述调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。本文约定,在选择菜单时,通过/表示分级菜单,例如File/O转载 2006-08-22 21:12:00 · 753 阅读 · 0 评论 -
STL中相等(equality)与等价(equivalence)的区别
STL中相等(equality)与等价(equivalence)的区别1.相等(equality) 【无序数据】相等关系是以operator ==为基础的。a与b相等: a == b 例子:find,count,count_if等等大部分函数2.等价(equivalence) 【已序数据】等价关系是以“在已排序的空间中对象值得相对顺序”为基础的。a与b等价: !(a 作为比较规则): As原创 2007-12-12 14:36:00 · 1785 阅读 · 0 评论 -
闲话unsigned: unsigned int vs. int, unsigned char vs char.
个人一直不太习惯于unsigned int/char,可能因为嫌打字麻烦(得多打个unsigned),同时unsigned int实际上也没看到有很大的必要。只不过作为一种代码风格保证其值非负而已。然而多数人确实也不大愿意用unsigned:vector v;for(int i = 0; i 在以上例子上使用int 而不是unsigned几乎是普遍的事实了,虽然un原创 2007-12-08 10:07:00 · 2533 阅读 · 1 评论 -
f (p == NULL), if (p == 0) 还是 if(p) ?----再论空指针检测问题
转载请注明出处: http://blog.youkuaiyun.com/wingfiring某些C/C++编程的书中,曾经提到如何判断指针是否为空的问题.很显然,if (p == NULL), if (p == 0) 和if(p),都能够完成这一任务,差别在于可读性方面.我们分别加以讨论.1. if (p == NULL)相当多的文章建议采用,他们中的部分人甚至认为,其他做法都是错误的.这个形式一个变种是 i转载 2007-12-08 10:50:00 · 749 阅读 · 0 评论 -
【教训】在.h头文件中使用using namespace的下场。。。
//File1.hnamespace FILE1{void fun1();...void funn();} //File2.hnamespace FILE2{void fun1();...void funn();}//utility.h#include "FIle1.h"#include "File2.h"using namesp原创 2007-12-06 13:28:00 · 3511 阅读 · 1 评论 -
如何引入一个lib到C++工程中
设置方法如下:进入Project Property | Configuration Property | Linker ,在 General | Additional Library Directories中加入所需lib的目录(eg: e:/lib/),并在 Input | Additional Dependencies中输入所用到的lib名称(eg: sde90.lib)。原创 2006-12-23 16:05:00 · 3090 阅读 · 1 评论 -
对“仅通过崩溃地址找出源代码的出错行”一文的补充与改进
对“仅通过崩溃地址找出源代码的出错行”一文的补充与改进作者:上海伟功通信 roc 读了老罗的“仅通过崩溃地址找出源代码的出错行”(下称"罗文")一文后,感觉该文还是可以学到不少东西的。不过文中尚存在有些说法不妥,以及有些操作太繁琐的地方 。为此,本人在学习了此文后,在多次实验实践基础上,把该文中的一些内容进行补充与改进,希望对大家调试程序,尤其是release版本的程序有帮助 。欢迎各位朋友转载 2006-08-22 21:19:00 · 770 阅读 · 0 评论 -
功能强大的vc6调试器
功能强大的vc6调试器作者:yy2better 要成为一位优秀的软件工程师,调试能力必不可缺。本文将较详细介绍VC6调试器的主要用法。 windows平台的调试器主要分为两大类: 1 用户模式(user-mode)调试器:它们都基于win32 Debugging API,有使用方便的界面,主要用于调试用户模式下的应用程序。这类调试器包括Visual C++调试器、WinDBG、Bou转载 2006-08-22 21:16:00 · 909 阅读 · 0 评论 -
STL中heap的使用方法及注意事项(msdn2003中未提及)
1、make_heap The first version of the make_heap algorithm arranges the elements in the range [first, last) into a heap using less than (operator) to perform comparisons. The second version uses the c原创 2006-12-11 17:48:00 · 2011 阅读 · 0 评论 -
单下划线和双下划线前缀
?在程序中定义下划线,双下划线,及“str”,“is","to"均已为ansiC标准委员会所保留,如果自行定义就犯了错误。另:你最好不要使用所有标准库中定义的标识符(变量名,宏,函数名……),如果你特别喜欢用的话,建议你在变量名的前面加上你的个性前缀(如NMD_,FUCK_等……,什么?我骂人?NO,清华大学的学生—伏明瞎都不知道,我哪会知道是什么意思)或另加后缀_DOG,_CS……。以下是R转载 2006-12-11 11:24:00 · 1766 阅读 · 0 评论 -
The C++ Programming Language 学习笔记(ch1 ,ch2)
1.philosohpy of the design of C++ .close to the machine .close to the problem to be solved2.How does one write good programs in C++? .Know what you want to say. .Practice.Imitate good writing.3.Prog原创 2006-06-22 09:55:00 · 796 阅读 · 0 评论 -
STL 简介,标准模板库
2005-11-24 作者:Scott Field 这篇文章是关于C++语言的一个新的扩展——标准模板库的(Standard Template Library),也叫STL。 当我第一次打算写转载 2006-06-02 17:10:00 · 869 阅读 · 0 评论 -
仅通过崩溃地址找出源代码的出错行
仅通过崩溃地址找出源代码的出错行 1.设置编译器,编译时生成MAP文件。 (1)C/C++: /Zd (2)Link: /map[:filename] /map:lines /map:export (DLL时使用) 2.使用MAP文件 (1)仔细浏览 Rva+Base 这转载 2006-05-27 22:03:00 · 735 阅读 · 0 评论 -
c++资源之不完全导引
c++资源之不完全导引 (全文)撰文/ 曾毅 陶文最后更新:2004年6月12日声明:.本文2004年5月首发于《优快云开发高手》,版权归该杂志与《程序员》杂志社所有。杂志限于篇幅部分内容有所删节,此处版本为相对完整版本。本文为介绍性文章,会随笔者学习C++语言不断更新。前言无 数次听到“我要开始学习C++!”的呐喊,无数次听到“C++太复杂了,我真的学不会”的无奈。Stan Lippm转载 2006-05-23 09:39:00 · 2379 阅读 · 1 评论 -
C++语言中的一些小技巧
//----1,2,3为利用C++完成实现类似C的实现1。string 对象转为C风格的字符串2。c++中实现读取一行和设置输出宽度3。c++中设置输出的精度4。new的另类用法5。申请和释放2维或3维数组的写法和示例1.string::c_str() int len=strlen(a.c_str()); //equeal to the bellow 转化为c格式2。getline和设置原创 2006-05-22 22:05:00 · 981 阅读 · 0 评论 -
堆和栈的区别
堆和栈的区别一、预备知识—程序的内存分配一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区)(stati转载 2006-09-07 22:04:00 · 906 阅读 · 0 评论 -
内存分配深入探讨
内存分配深入探讨摘要:内存管理向来是C/C++程序设计的一块雷区,大家都不怎么愿意去碰她,但是有时不得不碰它。虽然利用C++中的smart pointer已经可以完全避免使用指针,但是对于对于指针的进一步了解,有助于我们编写出更有效率的代码,也有助于我们读懂以前编写的程序。 五大内存分区 在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区转载 2006-09-07 22:01:00 · 997 阅读 · 0 评论 -
在visual studio 2003工程中增加宏定义的方法
在visual studio 2003工程中增加宏定义的方法在Solution Explorer中鼠标右键点击其project之后,Configuration(Release)->Configuration Propertity ->C++ ->Preprocessor ->Preprocessor Definitions在此处增加你想要的宏。然而如何取消代码中定义的宏呢原创 2008-01-09 12:21:00 · 1999 阅读 · 0 评论