2013年6月26日

摘要: 1、Linux函数库介绍函数库可以看做是事先编写的函数集合,它可以与主函数分离,从而增加程序开发的复用性。Linux中函数库可以有3种使用的形式:静态、共享和动态。1) 静态库的代码在编译时就已连接到开发人员开发的应用程序中;2) 而共享库只是在程序开始运行时才载入;3) 动态库也是在程序运行时载入,但与共享库不同的是,动态库使用的库函数不是在程序运行使开始载入,而是在程序中的语句需要使用该函数时才载入。动态库可以在程序运行期间释放动态库所占用的内存,腾出空间供其他程序使用。注:l 由于共享库和动态库并没有在程序中包括库函数的内容,只是包含了对库函数的引用,因此代码的规模比较小。l 系统中可用 阅读全文

posted @ 2013-06-26 23:25 davy2013 阅读(275) 评论(0) 推荐(0) 编辑


2013年6月24日

摘要: 简介在进行服务器端开发的时候需要考虑一些算法和性能问题,经过了几年的开发,对这方面有了一些经验,现在写下来跟大家分享和讨论。我主要是在Linux下进行C语言的开发,所以后面的实现都是基于Linux操作系统并用C语言来讲解。其它平台和语言需要考虑的问题是类似的只不过可能是实现细节上有一些差异,我尽量减少这些差异吧。注意一下讲解的所有内容都是基于32位系统的开发!服务器程序开发核心是稳定,在稳定的前提下需要考虑效率。其中主要的公共模块是内存池和线程池。因为服务器程序一般都会长时间的运行,而且频繁的进行创建和释放内存的操作,这时如果使用系统的malloc和free方法,则会使系统中产生很多内存碎片, 阅读全文

posted @ 2013-06-24 13:47 davy2013 阅读(286) 评论(0) 推荐(1) 编辑

摘要: Linux 下调试远没有windows下的VS方便,不管是VC++6还是VS2003,2005,2008,2010,2012.VS2012自动格式化代码 Ctrl+K+DVS下调试一定要注意尽量不要用F11,要用F10!不然需要引入库文件,提示的警告信息可以“忽略”即可所以我觉得不妨用VS调试程序,可以用VS来研究C语言似乎是一个比较不错的主意,当你的C已经很好的时候可以直接在Linux下去手写代码了。当然windows下写的C程序放到Linux下运行,也是可以的,不过需要知道的是有些语法Windows下支持但是Linux下是不支持。还有时会有乱码,需要注意!注意!其实微软是希望用C++的,所 阅读全文

posted @ 2013-06-24 08:29 davy2013 阅读(290) 评论(0) 推荐(0) 编辑


2013年6月22日

摘要: Static在C语言里面有两个作用,第一个是修饰变量,第二个是修饰函数。1、Static修饰变量按照作用范围的不同,变量分为局部变量和全局变量。如果用static修饰变量,不论这个变量是全局的还是局部的都是存储在静态数据区。下面分开来讲:¨ 如果用static修饰全局变量,我们称其为静态全局变量。我们用static修饰全局变量的主要目的就是:使得其作用域仅限于变量被定义的文件中(即从变量定义处到本文件结尾处),其它文件不论通过什么方式都不能访问。¨ 如果用static修饰局部变量,我们称其为静态局部变量。我们用static修饰局部变量的目的主要有两个:1) 在某个函数体里面 阅读全文

posted @ 2013-06-22 16:34 davy2013 阅读(214) 评论(0) 推荐(0) 编辑


2013年6月21日

摘要: 1.[Effective C++原则07]:为多态基类声明virtual 析构函数。[如果不]: 如果不声明为析构函数,可能出现的结果如下:Derived对象的成分没有被销毁,形成资源泄露、在调试上会浪费很长时间。classCSimpleClass{public:CSimpleClass(){cout<<"CSimpleClass"<<endl;}~CSimpleClass(){cout<<"~CSimpleClass"<<endl;}private:};classCDerived:publicCSimpl 阅读全文

posted @ 2013-06-21 20:48 davy2013 阅读(235) 评论(0) 推荐(0) 编辑

摘要: 东软2012-11月笔试题<SPANstyle="FONT-SIZE:14px">classSample{intx;public:Sample(inta){x=a;cout<<"constructingobject:x="<<x<<endl;}};voidfunc(intn){staticSampleobj(n);}intmain(){func(1);func(10);//1 return0;}</SPAN> [分析]:题目的考查点,静态对象的创建及执行。类中的静态对象只会执行一次,这是输出上面 阅读全文

posted @ 2013-06-21 19:59 davy2013 阅读(199) 评论(0) 推荐(0) 编辑

摘要: 一、虚拟内存术语 虚拟内存 在存储分配机制中,尽管备用地址是主内存的一部分,它也可以被寻址。程序引用内存使用的地址与内存系统用于识别的物理地址是不同的,程序生成的地址会自动转化为机器地址。虚拟存储的大小受计算机系统寻址机制和可用的备用内存量的限制,而不受内存储位置实际数量的限制虚拟地址在虚拟内存中分配给某一位置的地址使该位置可以被访问,仿佛是主存的一部分虚拟地址空间分配给进程的虚拟存储地址空间可用于某进程的内存地址范围实地址内存中存储位置的地址二、分段和分页的特点(虚拟与非虚拟)简单分页虚拟分页简单分段虚拟分段内存被划分为固定大小的小块,成为页框... 阅读全文

posted @ 2013-06-21 08:27 davy2013 阅读(332) 评论(0) 推荐(0) 编辑


2013年6月20日

摘要: C++中的四种强制类型转换除了具有C语言强制类型转换的功能外,还可提供更好的控制强制转换的过程;能更清晰地表明程序员的意图,程序员只有看到这样的代码,立即就能知道一个强制类型转换的目的。C风格的强制类型转换(TypeCast)很简单,不管什么类型的转换统统是:TYPEb=(TYPE)a,而C++风格的类型转换提供了四种类型转换操作符来对应不同的场景,使用格式是:TYPEb=强制转换类型符<TYPE>(a)。Const_cast常用于去掉类型的const或volalitle属性,只能用于指针和引用的,无法对变量进行使用,以便对const变量进行赋值等操作。Dynamic_cast能够 阅读全文

posted @ 2013-06-20 23:14 davy2013 阅读(273) 评论(0) 推荐(0) 编辑

摘要: volatile 是易变的、不稳定的意思。很多人根本就没见过这个关键字,不知道它的存在。也有很多程序员知道它的存在,但从来没用过它。我对它有种“杨家有女初长成,养在深闺人未识” 的感觉。volatile 关键字和const 一样是一种类型修饰符,用它修饰的变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。先看看下面的例子:int i=10;int j = i;//(1)语句int k = i;//(2)语句这时候编译器对代码进行优化,因为在(1)、(2)两条语句中,i 没 阅读全文

posted @ 2013-06-20 21:46 davy2013 阅读(175) 评论(0) 推荐(1) 编辑

摘要: 第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,也可以由4.该类的对象访问。注:友元函数包括3种:设为友元的普通的非成员函数;设为友元的其他类的成员函数;设为友元类中的所有成员函数。第二:类的继承后方法属性变化。private 属性不能够被继承。使用private继承,父类的prot 阅读全文

posted @ 2013-06-20 21:32 davy2013 阅读(1529) 评论(0) 推荐(1) 编辑


Copyright © 2024 davy2013
Powered by .NET 8.0 on Kubernetes