上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页
摘要: 转载http://blog.csdn.net/neo_ustc/article/details/9024839 有 些人写C/C++(以下假定为C++)程序,对unresolved external link或者duplicated external simbol的错误信息不知所措(因为这样的错误信息不能定位到某一行)。或者对语言的一些部分不知道为什么要(或者不要)这样那样设计。了解本文之后, 或许会有一些答案。 首先看看我们是如何写一个程序的。如果你在使用某种IDE(Visual Studio,Elicpse,Dev C++等),你可能不会发现程序是如何组织起来的(很多人因此而反对初学者使. 阅读全文
posted @ 2013-11-09 14:18 z折腾 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 一、机器语言 机器语言(machine language)是一种指令集的体系。这种指令集,称机器码(machine code),是电脑的CPU可直接解读的数据。 可以理解为机器语言就是二进制二、源代码 源代码示例源程序(source code)是指未编译的按照一定的程序设计语言规范书写的文本文件。 源代码(也称源程序),是指一系列人类可读的计算机语言指令三、预处理器 预处理器是在真正的编译开始之前由编译器调用的独立程序。预处理器可以删除注释、包含其他文件以及执行宏(宏macro是一段重复文字的简短描写)替代。预处理器可由语言(如C)要求或以后作为提供额外功能(诸如为FORTRAN提供R... 阅读全文
posted @ 2013-11-09 09:37 z折腾 阅读(1461) 评论(0) 推荐(0) 编辑
摘要: 1、STL中,请写出vector和list各自的优点缺点。请写出map的数据结构组织方式以及查找的时间复杂度vector 向量相当于数组,在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储。当存储的内容超过此分配空间时再进行整理的重新分配一块内存存储。优点: 不指定一块内存大小的数组的连续存储,既可以像数组一样操作,但可以对此数组进行动态操作。push_back()与pop_back(); 随机访问方便,即[]操作和vector.at(); 自动调整内存,节省空间缺点: 实现插入与删除操作效率低 ,只能... 阅读全文
posted @ 2013-11-07 20:53 z折腾 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 构造函数不能声明为虚构函数。原因有2 : 1、虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。纯虚构函数: 纯虚函数是指不必再基类中定义,但必须在派上类中被覆盖的函数。其函数声明格式为virtual 函数名() = 0; 通常纯虚函数用来定义接口或抽象类 阅读全文
posted @ 2013-11-07 17:38 z折腾 阅读(1016) 评论(0) 推荐(0) 编辑
摘要: 字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。 1. Little endian:将低序字节存储在起始地址 2. Big endian:将高序字节存储在起始地址例子:在内存中双字0x01020304(DWORD)的存储方式 内存地址4000&4001&4002&4003LE 04 03 02 01BE 01 02 03 04例子:如果我们将0x1234abcd写入到以0x0000开始的内存中,则结果为 BE LE0x0000 0x12 0xcd0x0001 0x34 0xab0x0002 0xab 0x340x0003 0xcd 0x12x86系 阅读全文
posted @ 2013-11-07 16:35 z折腾 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 一、Static全局变量和全局变量的区别 1)全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。从以上分析可以看出, 把局部变量.. 阅读全文
posted @ 2013-11-07 16:18 z折腾 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 转载http://blog.csdn.net/zdl1016/article/details/5941330STL的线程安全. 说一些关于stl容器的线程安全相关的话题。一般说来,stl对于多线程的支持仅限于下列两点:(貌似Effective STL中有描述)1.多个读取者是安全的。即多个线程可以同时读取一个容器中的内容。 即此时多个线程调用 容器的不涉及到写的接口都可以 eg find, begin, end 等.2.对不同容器的多个写入者是安全的。即多个线程对不同容器的同时写入合法。 但是对于同一容器当有线程写,有线程读时,如何保证正确? 需要程序员自己来控制,比如:线程A读容器某一项时, 阅读全文
posted @ 2013-11-07 09:06 z折腾 阅读(12474) 评论(0) 推荐(1) 编辑
摘要: 一、PV操作 在计算机操作系统中,PV操作是进程管理中的难点。P,V原语中P是荷兰语的Passeren,相当于英文的pass, V是荷兰语的Verhoog,相当于英文中的increment。首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:P(S):①将信号量S的值减1,即S=S-1;②如果S>=0,则该进程继续执行;否则该进程置为等待状态,排入等待队列。V(S):①将信号量S的值加1,即S=S+1;②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。PV操作的意义:我们用信号量及PV操作来实现 阅读全文
posted @ 2013-11-06 09:13 z折腾 阅读(2852) 评论(0) 推荐(0) 编辑
摘要: 转载http://www.cnblogs.com/this-543273659/archive/2011/08/02/2125487.html将构造函数,析构函数声明为私有和保护的,那么对象如何创建?已经不能从外部调用构造函数了,但是对象必须被构造,应该如何解决,麻烦大家帮忙说明,关于构造,析构函数声明为私有和保护时的用法???提出这个问题,说明你已经对c++有所思考了。从语法上来讲,一个函数被声明为protected或者private,那么这个函数就不能从“外部”直接被调用了。对于protected的函数,子类的“内部”的其他函数可以调用之。而对于private的函数,只能被本类“内部”的其 阅读全文
posted @ 2013-11-05 11:17 z折腾 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 一、死锁什么是死锁?其条件是什么?怎样避免死锁? 死锁的概念:在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。 死锁产生的原因主要是:(1)系统资源不足;(2) 进程推进顺序非法。 产生死锁的必要条件: (1)互斥(mutualexclusion),一个资源每次只能被一个进程使用; (2)不可抢占(nopreemption),进程已获得的资源,在未使用完之前,不能强行剥夺; (3)占有并等待(hold andwa... 阅读全文
posted @ 2013-10-23 11:18 z折腾 阅读(310) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 14 下一页