
c++
文章平均质量分 92
yuyin86
这个作者很懒,什么都没留下…
展开
-
基础入门:C++的效率浅析
<br />基础入门:C++的效率浅析<br />自从七十年代C语言诞生以来,一直以其灵活性、高效率和可移植性为软件开发人员所钟爱,成为系统软件开发的首选工具。而C++作为C语言的继承和发展,不仅保留了C语言的高度灵活、高效率和易于理解等诸多优点,还包含了几乎所有面向对象的特征,成为新一代软件系统构建的利器。<br />相对来说,C语言是一种简洁的语言,所涉及的概念和元素比较少,主要是:宏(macro)、指针(pointer)、结构(struct)、函数(function)和数组(array),比较容易掌握转载 2010-09-27 20:36:00 · 916 阅读 · 0 评论 -
Debug Assertion Failed 错误定位
1。按F5运行你的程序 <br />2。在出错时,选择“重试” <br />3。按ALT+7调出“调用栈”窗口 <br />4。双击从上往下的最近一个自己定义的函数,系统会自动把该函数所在的文件显示出来,此时程序就暂停在光标处,一般来说错误就出在这附近,可以通过查看变量的值来确认。<br />转载 2011-03-01 17:08:00 · 7063 阅读 · 1 评论 -
字符串操作函数
<br />1. 字符串操作函数<br /> 程序按功能划分可分为数值运算、符号处理和I/O操作三类,符号处理程序占相当大的比例,符号处理程序无处不在,编译器、浏览器、Office套件等程序的主要功能都是符号处理。无论多复杂的符号处理都是由各种基本的字符串操作组成的,本节介绍如何用C语言的库函数做字符串初始化、取长度、拷贝、连接、比较、搜索等基本操作。<br /> 1.1. 初始化字符串<br /> #include <string.h>void *memset(void *s, int c, siz转载 2011-03-03 08:43:00 · 695 阅读 · 0 评论 -
free指针时遭遇_CrtIsValidHeapPointer
<br />malloc和free在教材里不知讲了多少,今天实际用到一处,就出问题了。<br />案发现场是我用VC++在WINXP下编程,先看这一段代码<br />{<br /> BYTE *pBuffer;<br /> pBuffer = (BYTE *)malloc(64);<br /> pBuffer = pBuffer + 32;<br /> free(pBuffer);<br /> pBuffer = NULL;<br />} //第一段<br />先声明一转载 2011-03-05 23:20:00 · 617 阅读 · 0 评论 -
c语言中可变参数函数的设计
<br />语言中可变参数函数的设计<br /> ----- 最近想好好学学这个, 先把网上搜集得资料贴上. <br /><br /><br />================================================================================<br />================================================================================<br />====转载 2011-03-10 11:52:00 · 3328 阅读 · 0 评论 -
c语言中可变参数函数的设计
<br />语言中可变参数函数的设计<br /> ----- 最近想好好学学这个, 先把网上搜集得资料贴上. <br /><br /><br />================================================================================<br />================================================================================<br />====转载 2011-03-10 11:52:00 · 2980 阅读 · 0 评论 -
Linux平台Boost的编译方法
转载自:http://blog.youkuaiyun.com/livelylittlefish/archive/2010/12/24/6095658.aspxLinux平台Boost的编译方法 Boost的编译使用的不是已经成为公认标准的make,而是专门为Boost开发的工具bjam(boost jam)。本文以boost1.40为例,在Linux平台的编程环境为gcc4.4.1,假设Boo转载 2011-06-23 09:31:00 · 709 阅读 · 0 评论 -
Win32 平台 Boost 的编译方法
转自:http://blog.youkuaiyun.com/livelylittlefish/archive/2010/12/24/6095619.aspxWin32 平台 Boost 的编译方法 本文以 boost1.40 为例,在 Win32 平台的编程环境为 vs2005 ,假设 Boost 代码在 E:/opensource/boost_1_40_0 目录,步骤如下。 1. 获得 b转载 2011-06-23 09:33:00 · 828 阅读 · 0 评论 -
应用层调用驱动程序的方法
转:http://hi.baidu.com/cealy/blog/item/3d300ed7941182 d9a144df5a.html Windows 中,应用程序使用驱动,应用程序与驱动通信的一些问题。 2.1 应用程序如何使用驱动 应用程序中使用 CreateFile,ReadFile,WriteFile,DeviceIoControl,CloseHandle 来指示驱动程序完成某种转载 2011-06-23 12:18:00 · 3134 阅读 · 0 评论 -
Win32平台如何配置才能使用Boost、ACE、CppUnit
转自:http://blog.youkuaiyun.com/livelylittlefish/archive/2010/12/24/6096108.aspx Win32平台如何配置才能使用Boost、ACE、CppUnit 1. 环境变量 (1) 为ACE-5.6.4添加/修改的的环境变量 C:/Documents and Settings/zubo.yu>echo %ACE_ROO转载 2011-06-23 09:32:00 · 1030 阅读 · 0 评论 -
C++网络库总结
C++网络库总结转载自:http://blog.youkuaiyun.com/yangzhuoluo/archive/2009/06/27/4303134.aspx1. ACE - Adaptive Communication Environment http://www.cs.wustl.edu/~schmidt/ACE.html 2. Common G++ (GNU) http://www.gnu转载 2011-06-23 09:36:00 · 2462 阅读 · 0 评论 -
memset, memcpy, strcpy 的区别
memset用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;例:char a[100];memset(a, /0, sizeof(a)); memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成转载 2011-06-29 08:45:00 · 766 阅读 · 0 评论 -
heap stack 堆栈 全局变量 静态变量 进程空间 内存分配
一、预备知识——程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— —由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态区转载 2011-07-01 09:00:00 · 1190 阅读 · 0 评论 -
在编译期间获取类型的信息
type traits 用来在编译期间获取类型的信息,在 boost 库中用了很多诡异的方法来检测,主要是模板特化机制,比如两个类型是否一直: template struct is_same{ static const bool value = fals转载 2011-08-03 13:43:19 · 760 阅读 · 0 评论 -
C++代码优化方法
本文对C++ 代码优化进行了多种方法的介绍在C++层次进行优化,比在汇编层次优化具有更好的移植性,应该是优化中的首选做法。 确定浮点型变量和表达式是 float 型 为了让编译器产生更好的代码(比如说产生3DNow! 或SSE指令的代码),必须确定浮点型变量和表达式是转载 2011-08-07 10:28:08 · 693 阅读 · 0 评论 -
Optimization of Computer Programs in C
Optimization of Computer Programs in C Michael E. LeeSenior Programmer/AnalystOntek Corporation22941 Mill Creek RoadLaguna Hil转载 2011-08-07 17:48:42 · 2780 阅读 · 0 评论 -
Optimizing C++
Optimizing C++A book about improving program performancePrefaceAudienceThis book is for intermediate C++ programmers (i.e. study转载 2011-08-08 08:31:22 · 1142 阅读 · 0 评论 -
C++ Programming/Optimization
C++ Programming/OptimizationFrom Wikibooks, open books for an open worldC++ ProgrammingJump to: navigation, search C转载 2011-08-08 08:27:41 · 1508 阅读 · 0 评论 -
明晰C++内存分配的五种方法的区别
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器转载 2011-08-07 10:20:45 · 495 阅读 · 0 评论 -
C++代码优化方法总结
优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力。我只是想把一些可以简单的应用到你的C++代码中的优化技术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的性能进行一个大概的估计。这也是本文的目的之所在。一.转载 2011-08-07 10:20:01 · 589 阅读 · 0 评论 -
计算机经典书籍电子书合集(适合计算机学生学习以及程序员笔试、面试)
2楼 JAVA篇此篇收录:.《Java 2核心技术》、2.《Java编程语言》、3.《Effective Java》、4.《Java解惑》、5.《Java编程思想》3楼C篇此篇收录:1.《C程序设计语言》、2.《C和指针》、3.《C陷阱与转载 2011-08-07 17:53:16 · 18606 阅读 · 7 评论 -
c文件操作(网上转载)
文件文件的基本概念 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调入内存中转载 2011-08-15 09:07:50 · 619 阅读 · 0 评论 -
C/C++大型项目错误管理
在C/C++大型项目中,错误管理在项目中起着举足轻重的作用,以我自己的项目经验以及观摩其他项目,错误管理对项目框架以及开发效率有着很大的影响。对于错误管理的认识大致分为三类:刚刚开始写程序的新手,满篇程序看不到一处关于返回出错的处理,更不用说出错管理了。说明他没认识到出错转载 2011-08-15 09:11:25 · 682 阅读 · 0 评论 -
linux中出错处理
linux中,在支持多线程的环境中,通常每个线程都有属于自己的errno变量,是用来表示特定错误的常量。 以下是中定义的所有出错errno常量 #define EPERM 1 /* Operation not permitted *转载 2011-08-15 09:13:32 · 742 阅读 · 0 评论 -
C++网络开发包ACE环境的配置与调试
ACE是个很有用的开放源代码的C++网络编程开发包,利用它比直接用API更有利于代码的健壮性,可移植性,并相对简单。估计大家刚接触ACE时,都有一定难度,说不定就半途放弃了,这是我学ACE两天中的总结,基本上不成文,但我想研究到ACE的你一定会明白下文的意思。我的系统环境转载 2011-09-14 06:52:55 · 753 阅读 · 0 评论 -
C++ Boost Thread 编程指南
0 前言 标准C++线程即将到来。CUJ预言它将衍生自Boost线程库,现在就由Bill带领我们探索一下Boost线程库。 就在几年前,用多线程执行程序还是一件非比寻常的事。然而今天互联网应用服务程序普遍使用多线程来提高与多客户链接时的效率;为了达到最大的吞吐量,事务转载 2011-09-14 06:50:34 · 847 阅读 · 0 评论 -
C++程序调用C函数
这种需求很多,又因为C++和C是两种完全不同的编译链接处理方式,所以要稍加处理.总结大致有两大类实现方法.文中给出的是完整的,具体的,但又最基本最简单的实现,至于理论性的东西在网上很容易搜索的到. 一.通过处理被调用的C头文件a.h:#ifndef __A_H转载 2011-09-19 22:57:48 · 749 阅读 · 0 评论 -
C++对象构造函数与析构函数的调用时间问题
今天看书忽然对这个地方有点模糊,尤其是析构函数在调用默认的析构函数和用户自己覆写的析构函数的时候有点意识模糊呢。写段代码总结下view plain#include using namespace std;转载 2011-09-20 22:56:55 · 603 阅读 · 0 评论 -
linux两个程序通过共享内存通信的一个简单例子
写共享内存程序: view plain/* * File: server.cpp * Author: centos *说明:从键盘读入数据,存放在共享内存中。 * Created on 2010年3月1日, 下午3:44 */转载 2011-09-22 22:02:30 · 1169 阅读 · 0 评论 -
C++代码优化方法总结
优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力。我只是想把一些可以简单的应用到你的C++代码中的优化技术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的性能进行一个大概的估计。这也是本文的目的之所在。目录:转载 2011-08-30 16:37:02 · 550 阅读 · 0 评论 -
定义C/C++全局变量/常量几种方法的区别
在讨论全局变量之前我们先要明白几个基本的概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这转载 2011-09-28 23:39:08 · 510 阅读 · 0 评论 -
回调函数,同步调用,异步调用,事件,消息循环
什么是回调函数?一,回调函数我们经常在C 设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢?使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个转载 2011-10-21 23:31:32 · 1017 阅读 · 0 评论 -
c++异常处理机制示例及讲解
这两天我写了一个测试c++异常处理机制的例子,感觉有很好的示范作用,在此贴出来,给c++异常处理的初学者入门。本文后附有c++异常的知识普及,有兴趣者也可以看看。 下面的代码直接贴到你的console工程中,可以运行调试看看效果,并分析c++的异常机制。 #include "stdafx.h" #include #include #include // 内存泄露转载 2011-10-31 22:21:08 · 475 阅读 · 0 评论 -
fileno函数与ftruncate函数
fileno()函数功 能:把文件流指针转换成文件描述符相关函数:open, fopen表头文件:#include 定义函数:int fileno(FILE *stream)函数说明:fileno()用来取得参数stream指定的文件流所使用的文件描述词返回值 :返回和stream文件流对应的文件描述符。如果失败,返回-1。范例:#include mai转载 2011-12-20 09:10:00 · 522 阅读 · 0 评论 -
用c语言实现面向对象的编程方式
主要利用结构体和函数指针,实现面向对象编程中的封装、继承和多态;//base.htypedef struct BaseClass{ int m_Data; void *pComponentPrivate; //指向子类结构体的指针 void (*GetComponentVersion)();//声明虚函数 //指针参数,相当于C++成员函数隐含的thi转载 2011-12-28 08:33:12 · 2991 阅读 · 0 评论 -
ubuntu安装ACE过程
描述下本人电脑情况: 虚拟机版本:VMware-workstation-full-v7.1.4; ACE版本:ACE6.0.0 虚拟机Linux版本:Ubuntu10.10 Desktop; 安装ACE,最简单的方法,是直接apt-get安装[cpp] view plaincopyprint?sudo apt-转载 2012-01-30 13:46:36 · 974 阅读 · 0 评论 -
linux/ubuntu install boost
安装所有开发所需编译工具 gcc g++等等sudo apt-get install build-essential然后 安装库sudo apt-get install libboost-dev libboost-dbg libboost-doc bcp libboost*或者sudo apt-get install libboost-all-dev, 安装即可转载 2012-01-30 13:47:50 · 2420 阅读 · 0 评论 -
ubuntu下安装pthread的manpages(man 手册)
由于学习多线程编程,所以用到pthread,但是man的时候却发现没有pthread函数库的手册页,然后安装$sudo apt-get install glibc-doc 安装以后,发现还是有很多函数不全,只有一小部分pthread的函数,使用man -k pthread或apropos pthread可以查找到当前manpages中关于pthread的手册。安装manpages-p转载 2012-01-30 15:16:30 · 967 阅读 · 0 评论 -
学习设计模式的一些常见问题
根据最近热心读者的反馈,这里列出来一些常见的设计模式的问题,进行解答。如何领悟设计模式中的面向对象思想,还是请下载《漫谈设计模式》 学习设计模式的一些常见问题 1. 模式有没有标准形式? GoF为了描述每一种设计模式,给它们定义了四个基本要素,旨在模式使模式能够得到广泛传播,这并不代表GoF给出的模式就是标准模式。事实上,他们也没有给每一种模式给出标准,而是很多地方给出了它们可能的变化转载 2012-02-01 08:31:49 · 603 阅读 · 0 评论 -
一年成为Emacs高手(像神一样使用编辑器)
很容易.一年多前我还在Vi阵营,偶尔使用Emacs还总是忘记`退出`(C-x C-c)的快捷键,但是一年后我跨入高手行列.现在网上很多中文文章都是和你强调Emacs有多牛,以激发你的兴趣.最有名的大概是王垠的Emacs是一种信仰!世界最强编辑器介绍.这些好文章让你激动,你因此定下来一个伟大崇高的目标(掌握神一样的编辑器Emacs),接下来的关键就是执行了(如何高效地学习Emacs).国转载 2012-02-03 08:18:04 · 744 阅读 · 0 评论