- 博客(14)
- 资源 (3)
- 收藏
- 关注
转载 VC中预处理指令与宏定义的妙用
<br />作者: 刘巍<br />Monday, June 24 2002 11:28 AM<br />刚接触到MFC编程的人往往会被MFC 向导生成的各种宏定义和预处理指令所吓倒,但是预处理和宏定义又是C语言的一个强大工具。使用它们可以进行简单的源代码控制,版本控制,预警或者完成一些特殊的功能。<br />一个经典的例子<br />使用预处理与宏定义最经典的例子莫过于加在一个头文件中以避免头文件被两次编译。试想这种的情况,有一个文件headerfile.h 它被包含在headerfile1.h中,同时在
2010-06-12 09:01:00 414
转载 extern "C"详解
<br />C++中extern “C”含义深层探索<br /> 1.引言<br /> C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。<br /> 2.从标准头文件
2010-06-11 15:29:00 380
转载 register变量
<br />register变量<br /> <br />Register修饰符暗示编译程序相应的变量将将被频繁使用,如果可能的话,应将其保存在CPU的寄存器中,以指加快其存取速度。但是,使用register修饰符有几点限制。 <br /> 首先,register变量必须是能被CPU寄存器所接受的类型,这通常意味着register变量必须是一个单个的值,并且其长度应小於或等於整型的长度。但是,有些机器的寄存器也能存放浮点数。 <br /> 其次,因为register变量可能不存放在内存中,所以不
2010-06-11 15:26:00 898
转载 Debug 和 Release 版本区别
<br />关于Debug和Release之本质区别的讨论本文主要包含如下内容:<br />1. Debug 和 Release 编译方式的本质区别<br />2. 哪些情况下 Release 版会出错<br />2. 怎样“调试” Release 版的程序<br />一、Debug 和 Release 编译方式的本质区别<br />Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程<br />序。Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速
2010-06-10 16:24:00 484
转载 C++常见编译连接错误
<br /> 最近新到一家公司任职,编译公司项目的时候出现了一些古怪的编译错误和警告,现将这些错误和警告,以及解决这些错误和警告的方法贴出来。希望对大家有所帮助。<br /> 1.warning C4996: “strcpy”被声明为否决的.e:/开发工具/microsoft visual studio 8/vc/include/string.h(73) : 参见“strcpy”的声明.消息:“This function or variable may be unsafe. Consider us
2010-06-10 14:18:00 760
转载 strcpy和strncpy区别
<br />第一种情况:<br />char* p="how are you ?";<br />char name[20]="ABCDEFGHIJKLMNOPQRS"; <br />strcpy(name,p); //name改变为"how are you ? OPQRS " ====>错误!<br />strncpy(name,p,sizeof(name)) //name改变为"how are you ? " ====>正确!<br />第二种情况:<br />ch
2010-06-10 11:17:00 413
转载 static用法小结
<br />static用法小结 <br />static关键字是C, C++中都存在的关键字, 它主要有三种使用方式, 其中前两种只指在C语言中使用, 第三种在C++中使用(C,C++中具体细微操作不尽相同, 本文以C++为准).<br />(1)局部静态变量<br />(2)外部静态变量/函数<br />(3)静态数据成员/成员函数<br />下面就这三种使用方式及注意事项分别说明<br />一、局部静态变量<br />在C/C++中, 局部变量按照存储形式可分为三种auto, static, regi
2010-06-10 09:32:00 373
原创 C++位运算
<br />每次看到位运算的地方,都比较迷糊.以前学习C的时候也不求甚解,到现在看来,觉得位运算和指针在C++基本知识里是最难理解,最难融会贯通的东西.尤其是位运算,用好了可以"出神入化"了^_^.<br />如果当年好好学习C语言,也不至于今天这么费劲!<br />位运算 <br /> 位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。 <br />位运算符有: <br /> &(按位与)、|(按位或)、^(按位异或)
2010-06-10 08:51:00 781
原创 Alpha混合
<br /><转贴1><br />alpha混合技术对熟悉游戏的人来说不会陌生,这种技术在如今的游戏特效里已经被用烂了。3D的游戏就不说了,2D的游戏里,这种技术也是满眼皆是。 <br /> alpha混合听上去很神秘,实际非常简单,其作用就是要实现一种半透明效果。假设一种不透明东西的颜色是A,另一种透明的东西的颜色是B,那么透过B去看A,看上去的颜色C就是B和A的混合颜色,可以用这个式子来近似,设B物体的透明度为alpha(取值为0-1,0为完全透明,1为完全不透明)<br />R(C)=alpha*R
2010-06-10 08:46:00 985
转载 C++中的mutable关键字
<br />mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。<br /> 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。<br /> 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改一些跟类状态无关的数据成员,那么这个数据成员就应该被mutalbe来修饰。<br
2010-06-09 11:54:00 325
原创 关于析构函数
<br />Q1:析构函数是干什么的?<br />A1:析构函数用来释放对象所分配的资源。举例来说,Lock 类可能锁定了一个信号量,那么析构函数将释放该信号量。最常见的例子是,当构造函数中使用了new,那么析构函数则使用delete。<br />Q2:对象的析构顺序?<br />A2:与构造函数相反,先构造的后析构。如:一个对象数组构造顺序是0,1,2……9,析构顺序则为9,8……0<br />Q3:可以重载析构函数吗?<br />A3:NO!类只能有一个析构函数,无参无返回值。析构函数是系统自动调用,不
2010-06-09 11:47:00 554
转载 OEM造就整个IT产业
<br />“相对于oem而言,不管是硬件还是软件产品,它在零售市场上更具有自身的鲜明的风格和品牌形象,而在oem中,这些都被淡化了,尤其是自身的品牌被抹掉了。” <br />失去oem客户,失去oem订单,对厂商来说就意味着死亡。 <br />从技术到零部件到软件的功能模块,谁是全能? <br />康柏总裁菲费尔说:“用最直接的方式赚钱!” <br />oem:用最直接的方式赚钱<br />oem,英文是original equipment manufacture的缩写,中文为“原始设备制造商”。 <b
2010-06-09 11:10:00 1856
原创 拉伸图形形成solid实例
<br />//将实体加入到模型数据库中int addEntityToModelSpace(Acad::ErrorStatus& es,AcDbObjectId& entityId,AcDbEntity *pEntity){ //创建块表 AcDbBlockTable *pBlockTable; acdbHostApplicationServices() -> workingDatabase() ->getSymbolTable(pBlockTable,AcDb::kForRead
2010-06-09 11:07:00 1045
原创 对不平行的两条直线进行连接
功能:对不平行的两条直线进行连接,(若是有角度,则以交点连接,若是在同一直线上,但不相连,则把其中的一条连接起来)注意:本程序目前只能做直线的连接功能,由于防止选择实体时有误,因此对实体所在的图层做了处理,即两条曲线必须是同一图层才能连接
2010-06-04 09:28:00 851
企业软件开发众书-设计模式可复用面向对象软件的基础
2009-12-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人