![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++/C
文章平均质量分 74
n567656756765676567
这个作者很懒,什么都没留下…
展开
-
用rand()和srand()产生为随机数的方法总结
标准库(被包含于中)提供两个帮助生成伪随机数的函数:函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。 函数二:void srand(unsigned see转载 2011-10-12 22:47:01 · 321 阅读 · 0 评论 -
VC 开机自动启动程序代码
VC 开机自动启动程序代码 很多监控软件要求软件能够在系统重新启动后不用用户去点击图标启动项目,而是直接能够启动运行,方法是写注册表Software\\Microsoft\\Windows\\CurrentVersion\\Run。参考程序可以见下:(查找程序目录转载 2011-10-16 10:38:21 · 505 阅读 · 0 评论 -
continue break
continue1、结束本次循环,继续下次循环,并且进行条件判断;2、不可作用于switch语句。当在switch中使用,这个continue实际是作用于其所属的循环结构;若它不属于任何一个循环,程序将因此报错!break1、结束本次循环,并停止下次循环条件判断;转载 2011-10-09 14:53:34 · 270 阅读 · 0 评论 -
C语言函数调用的底层机制
C语言函数调用的底层机制这是一篇介绍C语言中的函数调用是如何用实现的文章。写给那些对C语言各种行为的底层实现感兴趣人的入门级文章。如果你是C语言或者汇编、底层技术的老鸟或是对这个问题不感兴趣,那么这篇文章只会耽误您的时间,您大可不必阅读他。当然如果前辈们愿意为我指转载 2011-09-17 00:05:24 · 935 阅读 · 0 评论 -
ASCII码 表
ASCII码键盘ASCII 码键盘ASCII 码键盘ASCII 码键盘27ESC32SPACE33!34"35#36$37%38&39'40(4转载 2011-10-18 22:24:59 · 430 阅读 · 0 评论 -
std::list的使用
std::list的使用使用标准的std::list进行容器数据处理时,操作比较底层。我们可以,减少引用标准MFC标准库,减少系统的大小,但同时也存在有不方便的操作之处,这里同大家分享一些使用心得...... 在使用std::list::转载 2011-09-01 23:21:40 · 1518 阅读 · 0 评论 -
C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
在C++中,内存分成5个区——堆、栈、自由存储区、全局/静态存储区和常量存储区栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用。和堆一样,转载 2011-09-03 18:31:06 · 486 阅读 · 0 评论 -
float与double的范围和精度
floa 与 double 的范围和精度1. 范围 float和double的范围是由指数的位数来决定的。 float的指数位有8位,而double的指数位有11位,分布如下: float: 1bit(符号位) 8bits(指数位) 23bits(尾数位) double: 1bit(符号位) 11bits(指数位) 52bits(尾数位) 于是,转载 2011-10-20 12:36:57 · 488 阅读 · 0 评论 -
QString的一些用法总结
QString字符串类QString类提供一个unicode文本和经典的C中以零结果的字符数组的抽象QString::QString()构造一个零字符串QString::QString(QChar ch)构造一个长度为一个字符,内容为给定字符ch的字符串QString::QString(const QString &s)构造一个给定字符序列的字符串QString &转载 2011-10-24 23:10:10 · 2087 阅读 · 0 评论 -
解析动态联编
文章摘要多态性是C++最主要的特征,多态性的实现得益于C++中的动态联编技术。文章通过对动态联编的关键技术虚拟函数表进行深入的剖析,解析的动态联编的过程极其技术要领。 关键字 多态性 动态联编 VTABLE 虚函数 文章正文 一 从多态性谈动态联编的必要性在进入主题之前先介绍一下联编的概念。联编就是将模块或者函数合并在一起生成可 执行代码的处理过程,同时对每转载 2011-11-14 23:03:52 · 521 阅读 · 0 评论 -
指针作为函数参数传递
这几天在学习C过程中,在使用指针作为函数参数传递的时候出现了问题,根本不知道从何得解:源代码如下: createNode(BinNode *tree,char *p) { tree = (BinNode *) malloc(sizeof(BinNode)); tree->data = *p; }该代码段的意图是通过一个函数创建一转载 2011-10-26 23:04:53 · 467 阅读 · 0 评论 -
C++应用程序性能优化笔记(二)——对象生命周期和内存布局
对象生命周期作用域由{}定义,可以用构造函数和析构函数来追踪对象的生命周期,比较简单,不述。全局对象在main开始前被创建,main退出后被销毁。静态对象在第一次进行作用域时被创建,在main退出后被销毁(若程序不进入其作用域,则不会被创建)。局部对象在进入作用域时被创建,在退出作用域时被销毁。new创建的对象会一直存在,即使指向该对象的指针已被销毁,容易造成内存泄漏。(书上说转载 2011-10-27 22:43:12 · 853 阅读 · 0 评论 -
C++应用程序性能优化笔记(三)——派生类的内存布局
派生类对象的内存布局单继承的派生类在构造实例时,首先构造一个基类的实例,在派生类的实例销毁后,基类的实例也被销毁。派生类实例的内存大小等于基类实例的内存大小加上派生类自有的数据成员的大小,基类的实例在派生类实例的头部(低地址)。而派生类在构造时,在基类的虚函数表中增加或修改,不会另外创建新的虚函数表。多继承的派生类分两种情况,在构造实例时,按照继承的顺序依次创建基类的对象,每个基类的实例有转载 2011-10-27 22:43:50 · 553 阅读 · 0 评论 -
C++应用程序性能优化笔记(一)——数据的存储区域
5种程序内存区:全局/静态数据区、常量数据区、代码区、栈、堆全局/静态数据区存储全局变量、全局静态变量、局部静态变量。类的静态成员变量也存储在这个区域,且只有一份拷贝,所有对象共享。可以自己编程写个有静态成员变量的类,然后看看不同对象中这个变量的内存地址,是一样的。常量数据区存储常量字符串,字符串常量存储的区域不可修改。printf()函数的格式串也是存储于这个区域。常量存储区是4字节对齐转载 2011-10-27 22:41:35 · 539 阅读 · 0 评论 -
C++应用程序性能优化笔记(四)——构造函数性能
容易成为性能瓶颈的C++语言特性对程序的性能问题,根本原因并非采用什么语言编写程序。如果程序的框架设计不作修改,单纯地把一个C++程序用C或者汇编改写,也不能保证总体性能会有提高。因此,正确的思路应该是:首先检查和反思程序的总体框架,然后用性能检测工具对实际运行进行准确测量,找出关键路径和瓶颈所在,然后针对瓶颈进行分析和优化。一些容易成为程序瓶颈的C++语言特性或操作如下:缺页。缺页往转载 2011-10-27 22:44:44 · 1016 阅读 · 0 评论 -
vs2005快捷键
CTRL + SHIFT + B生成解决方案 CTRL + F7 生成编译 CTRL + O 打开文件 CTRL + SHIFT + O打开项目 CTRL + SHIFT + C显示类视图窗口 F4 显示属性窗口 SHIFT + F4显示项目属性窗口 CTRL + SHIFT + E显示资源视图 F12 转到定义 CTRL + F12转到声明 CTRL +转载 2011-10-29 13:56:26 · 284 阅读 · 0 评论 -
CWnd与HWND的区别与转换
一、区别HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。 CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。二、如何得到窗口对象指针CWn转载 2011-10-05 11:16:54 · 345 阅读 · 0 评论 -
ACM牛人给的新手建议
ACM进阶一位高手的建议:一般要做到50行以内的程序不用调试、100行以内的二分钟内调试成功.训练过ACM等程序设计竞赛的人在算法上有较大的优势,这就说明当你编程能力提高之后,主要时间是花在思考算法上,不是花在写程序与debug上。下面给个计划你练练:第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-1转载 2011-11-19 10:12:18 · 364 阅读 · 0 评论 -
操作屏幕上的窗口
未整理:_tcsstr:字符串1在字符串2中首次出现的位置,未出现返回NULL值;_tcsrchr:字符1 在字符串2中首次出现的位置,未出现返回NULL值 char szFilePath[MAX_PATH]; GetModuleFileName(NULL, szFilePath, MAX_PATH); (_tcsrchr(szFilePath, _T('\\')))原创 2011-10-31 22:52:24 · 340 阅读 · 0 评论 -
字符串常量放在静态存储区
char *c="chenxi";书上说: "chenxi"这个字符串被当作常量而且被放置在此程序的内存静态区。那一般的int i=1;1也是常量,为什么1就不被放置在此程序的内存静态区了呢?请高手指点!所有的字符窜常量都被放在静态内存区因为字符串常量很少需要修改,放在静态内存区会提高效率 还有,int *p = 3; 是错的, p没初始化,但为什么上面的可以,因转载 2011-10-26 22:48:05 · 3334 阅读 · 0 评论 -
复制构造函数
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。#include iostream>using namespace std;class CExample {private: int a;publ转载 2011-11-01 22:39:34 · 307 阅读 · 0 评论 -
学习c++及c++用途
如何学习c++及c++用途 很多人把学习C++语言当成学习VC了,我曾经就走过这样的弯路。当学了很长时间的VC后 还是得回过头来学习C++语言本身。 那么学习C++从何处入手了? C++语言相对于C语言来说引入了两个大的新东西,一个就是面向对象(具体来将就是类转载 2011-11-25 01:24:56 · 1968 阅读 · 0 评论 -
C语言的发展史
概要C语言作为最初的Unix操作系统的系统实现语言,在1970年早期诞生。它以无类型的B语言为基础,形成了一个类型结构;它在小型机上被发明,作为一个工具,以改进贫乏的编程环境。在今天,它已经成为一种占统治地位的语言。本文研究它的发展。简介版权提示:版权所有1993计算机协会公司。此电子版由作者授权发表。有关出版事宜,请联系ACM或作者。本文被用于一九九三年四月,在马萨诸转载 2011-11-27 01:10:23 · 1471 阅读 · 0 评论 -
软件技术发展史
当前软件工程领域和软件产业界的热点技术包括原型开发方法、C/S与B/S结构、软件构件、软件复用等。本文针对这些当今软件开发的主流技术加以评述,以期对实际工作做出指导。 企业软件热点文章 经济危机下值得青睐的开源软件猜想09年saas趋于成熟发展 更新换代 新IT架构管理势在必行高成长中型企业实施ERP关键因素 实施ITIL服务支持 不提倡“爆发式”技术角度谈CRM项目选转载 2011-11-27 01:12:08 · 2726 阅读 · 0 评论 -
程序员修炼。。。
第一重: 在哪本电脑杂志上看见软件工程师这个职业介绍,或者走在大街上看见某某软件培训机构鼓吹培训完就能年薪10万的广告,有些羡慕那些编程序的,自己有些蠢蠢欲动。 第二重: 用控制台或者说SDK之类的东西写了一个“HELLO WORLD!”,感觉编程这个东西,太简单没难度。 第三重: 学会了简单的使用某某工具例如VC,知道怎么利用工具创建对话框之类的东西了,认转载 2011-11-28 00:31:30 · 714 阅读 · 0 评论 -
c++编程中的调试技巧(C++编程思想)
1.调试标记 适用预处理#define定义一个或多个调试标记,在代码中把调试部分使用#ifdef 和#endif 进行管理。当程序最终调试完成后,只需要使用#undef标记,调试代码就会消失。常用的调试标记为DEBUG, 语句序列: #define DEBUG #ifdef DEBUG 调试代码#endif2.运行期间调试标记 在程序运行期间转载 2011-11-29 00:05:07 · 1554 阅读 · 0 评论 -
一直以来伴随我的一些学习习惯(part1)
1. Google&Wiki(遇到问题做的第一件事情,也是学习某个东西做功课(homework)最先用到的东西。2. 看书挑剔,只看经典。如何选择经典,可以到网上做做功课,看看评价,综合分析一下。3. 做读书笔记。一是将自己阅读的时候的思考(包括闪念)总结下来,二是将书中的好例子摘抄下来。(这个习惯是一年前才养成的,发现受益极大。)有了google note,笔记可以加上tag,非常便于回转载 2011-11-30 00:42:18 · 1167 阅读 · 0 评论 -
一直以来伴随我的一些学习习惯(part2)
接着上次的写。1. 学习和思考的过程中常问自己的几个问题:你的问题到底是什么?(提醒自己思考不要偏离问题。) OK,到现在为止,我到底有了什么收获呢?(提醒自己时不时去总结,整理学习的东西)。设想自己正在将东西讲给别人听(有声思考;能否讲出来是判断是否真正理解的最佳办法)。3.1 设想需要讲给一个不懂的人听。(迫使自己去挖掘知识背后最本质、往往也是最简单的解释)。 时常反省和注转载 2011-11-30 01:04:41 · 1361 阅读 · 0 评论 -
易学svn使用教程
易学svn使用教程 每个程序员都应该参与团队合作项目,我想您也会参加的,如果参加过你是否遇到过这样的情况:当你正在修改一个文件,却出现另一个人作了同样的事情。你是否曾因为这种巧合而导致了你的修改付之东流?你是否曾经在文件保存之后,又想恢复到文件保存之前?你是否想过要去查看一个文件几天前的内容?当你发现一个项目中的bug,你是否转载 2011-11-09 15:52:33 · 444 阅读 · 0 评论 -
__declspec(dllexport)使用
__declspec(dllexport)声明一个导出函数,是说这个函数要从本DLL导出。我要给别人用。一般用于dll中省掉在DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用__declspec(dllexport)导出类__declspec(dllimport)声明一个导入函数,是说这个函数是从别的DLL转载 2011-11-10 18:46:26 · 495 阅读 · 0 评论 -
extern “c”再来一篇
时常在cpp的代码之中看到这样的代码:#ifdef __cplusplusextern "C" {#endif//一段代码#ifdef __cplusplus}#endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段cpp的代码,转载 2011-11-10 23:11:40 · 338 阅读 · 0 评论 -
关于“#ifdef __cplusplus” 和 " extern "C" " (zhuan)
看一些程序的时候老是有“#ifdef __cplusplusextern "C" {#endif”的定义,搞搞清楚是怎么回事:Microsoft-Specific Predefined Macros__cplusplus Defined for C++ programs only. 意思是说,如果是C++程序,就使用extern "C"{而这个东东,是指在下面的函数转载 2011-11-10 19:55:46 · 356 阅读 · 0 评论 -
程序员的十层楼
自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的程序员水平远落 后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产 业落后而已。 那么,到底中国的程序员水平比西方程序员水平差,还是中国有许多优秀的程序员 达到或超过了西方程序员同等水转载 2011-12-03 10:42:08 · 679 阅读 · 0 评论 -
用API写windows程序
使用API写Windows程序一 先来看个简单实例:#include "windows.h" int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { MessageBox (NULL, TEXT ("你好,欢迎来到VC之路"转载 2011-12-04 00:58:57 · 1586 阅读 · 0 评论 -
Ontimer的使用
定时器在VC中的使用频繁,以下讨论定义器的使用方法。 定时器的原型是: WINUSERAPI UINT WINAPI SetTimer ( HWND hWnd , UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc); hWnd 是欲设置定时器的窗体句柄。定时时间到时,系统会向该窗体发送WM_TIMER消息。转载 2011-12-04 01:27:57 · 1390 阅读 · 0 评论 -
VC基本操作四十条
一、改变视图背景色: 在CView的OnDraw函数中添写如下一段程序代码: void CFileNameView::OnDraw(CDC* pDC) {CFileNameDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);CRect rectClient;CBrush brushBkCol转载 2011-12-06 20:23:45 · 458 阅读 · 0 评论 -
c++程序架构(1)
一、引言应用程序也像一个建筑物,有它的架构, 建筑物是有层次,模块, 和基本元素, 如砖块,或模版组成的。程序也非常相似,类就是C++程序架构的基本元素。程序是运行在计算机上的, 而计算机必须有一个操作系统,我们把操作系统看作是一个平台,程序就是运行在这个平台上, 就像建筑物总是起在一定的基础上一样。操作系统提供了许多程序编程接口,API 。 应用程序通过API 调用操作系统许多内置的原创 2011-12-08 23:40:03 · 2415 阅读 · 0 评论 -
Qt的QGraphicsView框架
Graphics View提供了一个界面,它既可以管理大数量的定制2D graphical items,又可与它们交互,有一个view widget可以把这些项绘制出来,并支持旋转与缩放。这个柜架也包含一个事件传播结构,对于在scene中的这些items,它具有双精度的交互能力。 Items能处理键盘事件,鼠标的按,移动、释放、双击事件,也可以跟踪鼠标移动。Graphics View使用BSP树来转载 2011-12-18 20:29:05 · 592 阅读 · 0 评论 -
C++的机制机构解析
C++的机制机构解析对第一次接触到C++语言的用户和学者来说,了解C++语言的概念是非常重要的,那么就先说一下什么是C++语言,所谓C++语言:是一种使用非常广泛的计算机编程语言。 C++为我们所提供的各种存取控制仅仅是在编译阶段给我们的限制,也就是说是编译器确保了你在完成任务之前的正确行为,如果你的行为不正确,那么你休想构造出任何可执行程序来。但如果真正到转载 2011-12-10 18:30:30 · 632 阅读 · 0 评论 -
QT编程技巧.QString和QDateTime之间的相互转换
QT编程技巧.QString和QDateTime之间的相互转换 1、QDateTime 转换为 QString QString QDateTime::toString ( Qt::DateFormat format = Qt::TextDate ) const QString strBuffer; QDateTime time;转载 2011-12-11 19:31:00 · 822 阅读 · 0 评论