C/CPlusPlus
文章平均质量分 73
guo_wangwei
这个作者很懒,什么都没留下…
展开
-
C++的前世今生C的诡谲[转载]
从研究生二年纪开始学习计算机也差不多两年了,一路走来,有很多的收获,也有不少的遗憾,现在正好有一段闲暇,就想对走过的路留下一些足迹,回忆。每个人都有自己不同的人生,说到这里,就是程序人生了,歌德在《浮士德》中说过:“如果不曾在悲哀中咀嚼过面包,不曾在哭泣中等待过明天,这样的人就不知道你——天的力量。”所以我想记下一些带给我悲哀,带给我哭泣的程序人生。其实学习计算机的基础课程是非常重要的,离散数学,原创 2005-12-29 11:58:00 · 1157 阅读 · 0 评论 -
用qmake快速生成makefile
用qmake快速生成makefile摘要qmake是Trolltech公司创建的用来为不同的平台和编译器书写Makefile的工具。是qt工具包的一部分.在Unix&linux上写程式的人大概都碰过Makefile。用 make 来开发和编译程式的确很方便,可是要写出一个 Makefile就不简单了,手写Makefile是比较困难并且容易出错的,这阻挡了很多一部分的linux爱好者加入linux程原创 2006-07-31 11:12:00 · 1593 阅读 · 0 评论 -
纯虚函数能为private吗?
我们把一个仅仅含有纯虚函数的类称为接口,我们也好像已经习惯了将这个接口中的所有纯虚函数全声明为public,而且按照这样的设计,一切都工作得不错。比如COM正是这样做的,它的接口中几乎不会存在private的纯虚函数。那么,让我们想一想,纯虚函数或者虚函数可以为private吗?如果这种方式是可行的,那么什么时候可以将(纯)虚函数设为private了?这些都是本文将要讨论的主题。一起来看看。一转载 2006-08-22 15:25:00 · 1217 阅读 · 0 评论 -
Ansi C 函数库
Ansi C 函数库 absread()读磁盘绝对扇区函数原形:int absread(int drive,int num,int sectnum,void *buf)功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。参数:drive=0对应A盘,drive=1对应B盘。转载 2006-08-28 14:46:00 · 2458 阅读 · 0 评论 -
用SDL在Linux实现图像的移动
SDL(Simple DirectMedia Layer)是一套很底层的图形API, 支持Linux, *BSD, MacOS, Win32 and BeOS等平台. 下面, 我在Linux用C语言和SDL编写一个移动图像的程序. 移动图像是2D游戏的基础.首先. 你需要安装SDL, 也就是下面的包 libsdl, libsdl-dev, libsdl-image, libsdl-imag转载 2007-02-27 09:44:00 · 1581 阅读 · 0 评论 -
计算机科学经典论文
从Jao的Programming Musing 看到的:Babar Kazar 整理了一堆经典论文。Jao强烈建议每个严肃的程序员读每篇论文,说它们都或多或少有意思。粗粗扫了一下,很多论文都没读过。挑了些俺多少知道一点的介绍。· An axiomatic basis for computer programming C. A. R. HoareTony Hoare名下的公理化语义(转载 2007-02-27 09:39:00 · 1152 阅读 · 0 评论 -
C++关键字(static/register/atuo/extern/volatile/const/inline/define/typedef)
下面关于C++的几个关键字是经常和我们打交道的而我们又经常对这些含糊不清的,本文根据自己的学习体会作以总结,以期达到真正理解和活用的目的。staticl 静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可改变其值。l 静态变量或静态函数,即只有本文件内的代码才可访问它,它的名字(变量转载 2007-06-29 10:16:00 · 1571 阅读 · 0 评论 -
小议static
这是很早之前写的一篇文章,呵呵,铁出来仅供参考 1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将转载 2007-06-29 10:27:00 · 779 阅读 · 0 评论 -
堆和栈的区别(已经转臭了的文章,你看了吗?)
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。3、全局区(静态转载 2007-06-29 10:51:00 · 1380 阅读 · 1 评论 -
关于volatile关键字的说明以及测试
关于volatile关键字的说明以及测试 volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint; 当要求使用volatile 声明的变量的值转载 2007-06-29 10:52:00 · 761 阅读 · 0 评论 -
函数调用约定解析
函数调用约定解析 http://www.allaboutprogram.com/index.php?option=content&task=view&id=29&Itemid=31HouSisong@263.net 2004.11.07整理 文章来源于abp论坛中的一篇帖子:http://bbs.allaboutprogram.com/viewtopic.php?t=1245(原文转载 2007-06-29 15:27:00 · 853 阅读 · 0 评论 -
DLL中调用约定和名称修饰
DLL中调用约定和名称修饰 调用约定(Calling Convention)是指在程序设计语言中为了实现函数调用而建立的一种协议。这种协议规定了该语言的函数中的参数传送方式、参数是否可变和由谁转载 2007-06-29 15:42:00 · 916 阅读 · 0 评论 -
c与c++ static函数的区别
c与c++ static函数的区别static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数下面就这三种使用方式及注意事项分别说明一、局部静态变量在C/C++中, 局部变量按转载 2007-06-29 10:35:00 · 1802 阅读 · 0 评论 -
函数可重入性及编写规范
函数可重入性及编写规范 一、可重入函数1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局转载 2007-06-29 10:55:00 · 749 阅读 · 0 评论 -
C++高效程序设计
C++高效程序设计作者:Joris Timmermans译者:Xu Leasun(2003.04.02)(本译文的翻译已获得原作者授权,本译文的版权归雪川原所有,转载请与雪川联系)(本译文首次发表于《程序员》杂志2003年1月刊,感谢《程序员》杂志)摘要不管是否愿意承认,每个人都希望程序的运行速度越快越好。每天人们都你追我赶,好像明天就是末日。而同时,公关部的那些家转载 2007-06-29 11:21:00 · 1005 阅读 · 0 评论 -
严肃的问题:在C++(WIN32)中int和long有何区别
在C++(WIN32)中int和long有何区别int, unsigned int 4 bytes long, unsigned long 4 bytes回答: 在Win32中两者没有区别。两者的区别在于int型可能因为操作系统不同而不同,如在Win16下,int等同于short型。而在将来的位操作系统中,int可能表示位整数。而不管在什么操作系统下,long都是32原创 2007-10-30 15:14:00 · 1681 阅读 · 0 评论 -
C/C++ Newbie's FAQ
Part I 如何上路1. vi, vim是编译器么?vi means visual editor,是软件世界第一个全屏幕编辑器,最初的作者是现在Sun microsystem的Bill Joy。 vim means Vi IMproved,可以看作是增强的vi。 很不幸,他们都不是编译器,如果你已经写好了first.c,那么不能指望vi们将你的源代码变成执行程序。 2. gcc, g++这些转载 2007-11-15 09:35:00 · 1507 阅读 · 0 评论 -
Linux 下串口编程入门
Linux 下串口编程入门原创 2006-07-27 18:56:00 · 1136 阅读 · 0 评论 -
函数调用约定
原文来自(馨荣家园)]http://blog.vckbase.com/arong/archive/2004/06/09/409.aspx在C语言中,假设我们有这样的一个函数:int function(int a,int b)调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可以识别的机器码时,有一个问题就凸现出来:在CPU中,计算机转载 2006-06-29 16:50:00 · 1306 阅读 · 0 评论 -
想成为嵌入式程序员应知道的0x10个基本问题
1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2)懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有转载 2006-11-04 16:56:00 · 1159 阅读 · 1 评论 -
解析C语言中的sizeof
一、sizeof的概念 sizeof是C语言的一种单目操作符,如C语言的其他操作符++、--等。它并不是函数。sizeof操作符以字节形式给出了其操作数的存储大小。操作数可以是一个表达式或括在括号内的类型名。操作数的存储大小由操作数的类型决定。 二、sizeof的使用方法 1、用于数据类型 sizeof使用形式:sizeof(type) 数据类型必须用括号括住。如sizeo原创 2005-12-29 12:00:00 · 842 阅读 · 0 评论 -
你会用sizeof吗?(vc篇)
本文主要包括二个部分,第一部分重点介绍在VC中,怎么样采用sizeof来求结构的大小,以及容易出现的问题,并给出解决问题的方法,第二部分总结出VC中sizeof的主要用法。1、sizeof应用在结构上的情况请看下面的结构:structMyStruct{doubledda1;chardda;inttype};对结构MyStruct采用sizeof会出现什么结果呢?sizeof(MyStruct)为多原创 2005-12-29 12:02:00 · 810 阅读 · 0 评论 -
位域
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域, 并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位原创 2005-12-29 12:03:00 · 1706 阅读 · 0 评论 -
sizeof 总结
sizeof操作符以字节形式给出了其操作数的存储大小。作用:1、sizeof操作符的一个主要用途是与存储分配和I/O系统那样的例程进行通信。2、sizeof的另一个的主要用途是计算数组中元素的个数。计算结果:1、若操作数具有类型char、unsigned char或signed char,其结果等于1。 ANSI C正式规定字符类型为1字节。 2、int、unsigned int 、short原创 2005-12-29 12:45:00 · 1459 阅读 · 0 评论 -
C++常类型(const)
常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。因此,定义或说明常类型时必须进行初始化。 一般常量和对象常量 1. 一般常量 一般常量是指简单类型的常量。这种常量在定义时,修饰符const可以用在类型说明符前,也可以用在类型说明符后。如: int const x=2; 或 const int x=2; 定义或说明一个常数组可采用如下格式: c原创 2005-12-29 12:46:00 · 743 阅读 · 0 评论 -
深入浅出VA函数(转贴)
深入浅出VA函数(转贴)本文主要介绍可变参数的函数使用,然后分析它的原理,程序员自己如何对它们实现和封装,最后是可能会出现的问题和避免措施。VA函数(variable argument function),参数个数可变函数,又称可变参数函数。C/C++编程中,系统提供给编程人员的va函数很少。*printf()/*scanf()系列函数,用于输入输出时格式化字符串;exec*()系列函数,用于在转载 2005-12-29 14:39:00 · 1248 阅读 · 0 评论 -
C++设计新思维读书笔记(二)
2.1编译期(Compile-Time)Assertions(断言) (P.23)前言--古老的执行期断言:template To safe_reinterpret_cast(From from){ assert(sizeof(From) return reinterpret_cast(from); //问题二:reinterpret_cast不可移植}一、编译期断言--另类asse原创 2006-02-05 22:51:00 · 1584 阅读 · 0 评论 -
C++BUILDER非可视组件的消息处理技巧
C++BUILDER非可视组件的消息处理技巧杨超 一个非可视的组件必须对Windows操作系统或用户定义的消息作出响应。然而,由于一个非可视组件没有窗口,因此它也没有窗口句柄,自然它也不能接收到消息,为了解决这一问题,我们的思路是创建一个隐藏的窗口,使非可视组件能够接收到消息。转载 2006-05-08 14:49:00 · 1070 阅读 · 0 评论 -
《超越C++标准库:Boost库导引》
《超越C++标准库:Boost库导引》:Boost库简介-数据结构,容器,迭代器,以及算法 数据结构,容器,迭代器,以及算法Boost.Any Any库支持对任意类型的值进行类型安全的存取。当需要使用可变类型(variant type)的时候,有三种可能的解决方案: 无差别的(Indiscriminate)类型,比如void*. 这种解决方案几乎永远不可能达到类型安全,要尽可能地避免使用它转载 2006-05-11 09:59:00 · 1482 阅读 · 0 评论 -
深入浅出话异常
Robert SchmidtMay 10, 1999本期讨论要点: 标准C的异常处理机制。前言标准C提供了几种异常管理机制,这些机制在标准C++里也可用,但是相关的头文件名称作了改变:旧的标准C头文件名会从映射到新的标准C++里的头文件名。(头文件名的前缀C是为了记忆,指明它们是标准C的库文件)虽然在C++的向后兼容里保留了C的头文件,但我劝告你在任何可能的地方使用新的头文件。转载 2006-09-27 11:25:00 · 1377 阅读 · 0 评论 -
抽象工厂模式的好处
抽象工厂模式的好处 本来在写一篇设计模式的体会的文章,不过这个礼拜忙于补习编译原理了,先写一点零碎的吧。事先申明,以下内容只是我个人的体会,不保证正确,全面以及合理。--------在GOF的数量,创建型模式有好几个,最最常用的是工厂方法,简单的描述:你需要创建很多对象,比如矩形,圆形,圆角矩形(也许这是一个组态软件,或者Visio)。你可以随地来new,但是稍有经验的人就会选择由一个专门转载 2006-09-27 11:39:00 · 7784 阅读 · 0 评论 -
c++资源之不完全导引
c++资源之不完全导引 无数次听到“我要开始学习C++!”的呐喊,无数次听到“C++太复杂了,我真的学不会”的无奈。Stan Lippman先生曾在《C++ Primer》一书中指出“C++是最为难学的高级程序设计语言之一”,人们常将“之一”去掉以表达自己对C++的敬畏。诚然,C++程序设计语言对于学习者的确有很多难以逾越的鸿沟,体系结构的庞大,应接不暇并不断扩充的特性……除此之外,参考资料之转载 2006-05-17 17:54:00 · 1309 阅读 · 1 评论 -
C++内存对象大会战
如果一个人自称为程序高手,却对内存一无所知,那么我可以告诉你,他一定在吹牛。用C或C++写程序,需要更多地关注内存,这不仅仅是因为内存的分配是否合理直接影响着程序的效率和性能,更为主要的是,当我们操作内存的时候一不小心就会出现问题,而且很多时候,这些问题都是不易发觉的,比如内存泄漏,比如悬挂指针。笔者今天在这里并不是要讨论如何避免这些问题,而是想从另外一个角度来认识C++内存对象。 我们知道转载 2006-10-10 11:24:00 · 1146 阅读 · 0 评论 -
专家教您如何在C语言中巧用正则表达式
如果用户熟悉Linux下的sed、awk、grep或vi,那么对正则表达式这一概念肯定不会陌生。由于它可以极大地简化处理字符串时的复杂度,因此现在已经在许多Linux实用工具中得到了应用。千万不要以为正则表达式只是Perl、Python、Bash等脚本语言的专利,作为C语言程序员,用户同样可以在自己的程序中运用正则表达式。标转载 2006-05-30 11:11:00 · 942 阅读 · 0 评论 -
PCRE - Perl Compatible Regular Expressions
PCRE - Perl Compatible Regular Expressions转自:http://pcre.org/The PCRE library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5转载 2006-05-30 10:30:00 · 2090 阅读 · 0 评论 -
调用未知DLL中的导出函数
调用未知DLL中的导出函数document.title="调用未知DLL中的导出函数 - "+document.title不知道诸位看官是否有过这样的经历:在不经意之间发现一个DLL文件,它里边有不少有趣的导出函数——但是由于你不知道如何调用这些函数,所以只能大发感慨而又无能为力焉。固然有些知名的DLL可以直接通过搜索引擎来找到它的使用方式(比如本文中的例子ipsearcher.转载 2006-06-01 09:59:00 · 1018 阅读 · 0 评论 -
现代C++中的预处理宏
摘要:在C++从C继承的遗产中,预处理宏是其中的一部分。在现代C++的发展过程中,预处理宏是否还有意义?本文将讨论之。关键字:预处理 宏 #define #pragma C++中有那么多灵活的特性,例如重载、类型安全的模板、const关键字等等,为什么程序员还要写“#define”这样的预处理指令? 典型的一个例子,大家都知道“const int a=100;”就比“转载 2007-11-15 09:59:00 · 1523 阅读 · 2 评论