摘要:
扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的 阅读全文
摘要:
内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kernel)。单内核的最大优点是效率高,因为所有的内容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。一、 什么是模块模块是具有独立功能的程序,它可以被单独编译,但不能独立运行。它在运行时被链接到内核作为内核的一部分在内核空间运行,这与运行在用户空间的进程是不同的。模块通常由一组函数和数据结构组成,用来实现一种文件系统、一个驱动程序或 阅读全文
摘要:
c++内存中字节对齐问题详解一、什么是字节对齐,为什么要对齐? 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。比如有些架构的CPU在访问 一个没有进行对齐的变量的时候会发生错误,那么在这种架构下编程必须保证字节对齐.其他平台可能没有这种情况,但是最常见的是如果不按照适.. 阅读全文
摘要:
/*Please write complete compilable code.Read input from standard input (STDIN) and print output to standard output(STDOUT).For more details, please check http://www.interviewstreet.com/recruit/challenges/faq/view#stdio*/#include <iostream>#include <cstring>#include <algorithm>#incl 阅读全文
摘要:
1:写一个atoi函数2:new/delete malloc/free 那个效率高些,能不能混用3:const形容一个函数是什么意思,重载,重写,虚函数表4:第一范式 第三范式(不依赖于其他非主属性) 消除决定因素 | 1NF 非码的非平凡 | ↓ 消除非主属性对码的部分函数依赖 函数依赖 | 2NF | ↓ 消除非主属性对码的传递函数依赖 | 3NF | ↓ 消除主属性对码的部分和传递函数依赖 | BCNF | ↓ 消除非平凡且非函数依赖的多值依赖 | 4NF | ↓消除不是由候选码所蕴... 阅读全文
摘要:
一、堆排序算法的基本特性时间复杂度:O(nlgn)...//等同于归并排序最坏:O(nlgn)空间复杂度:O(1).不稳定。二、堆与最大堆的建立要介绍堆排序算法,咱们得先从介绍堆开始,然后到建立最大堆,最后才讲到堆排序算法。堆的介绍 如下图,a),就是一个堆,它可以被视为一棵完全二叉树。每个堆对应于一个数组b),假设一个堆的数组A,我们用length[A]表述数组中的元素个数,heap-size[A]表示本身存放在A中的堆的元素个数。当然,就有,heap-size[A]<=length[A]。 树的根为A[1],i表示某一结点的下标,则父结点为PARENT(i),左儿子LEFT[i],右 阅读全文
摘要:
__global__ void VecAdd(float* A,float* B,float* C){}int main(){VecAdd<<<1,N>>>(A,B,C);}其中,1,N是函数执行参数,代表kernel的Grid中只有一个block,而每个block中则有N个thread,而A,B,C是函数的参数。其中threadID和blockID都是内建的变量,用于和其他的线程相区分。Kernel是以block为单位执行的。下面演示对两个N*N的矩阵A和B进行求和。并将结果保存在C中。__global__ void MatAdd(float A[N][N 阅读全文
摘要:
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大段大段的代码,没有图片,没 阅读全文
摘要:
天天用Eclipse配工程,对eclipse的操作也算是弄懂了不少,Example:eclipse的快捷键使用,工程运行的过程…… 闲话少说,在网上找了好多Myeclipse+struts2.0.11+hibernate+spring配置的文章,发现多多少少有些问题,这个不能愿那些博客的作者,现在的技术更新的太快了,很多以前的真理性的文章现在也出现了很多的bug了,下面我将给出的是我配置的完全过程: 1、MyEclipse下建立新的Web Porject 2、Copy Struts2的lib文件到工程的WEB-INF/lib下非*-plugin-2.0.6.jar的所有的包(但是struts2 阅读全文
摘要:
1、堆和栈的区别?答:1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、栈是向下增长的,堆是向上增长的。(可以参考上一篇博客)下面是一个例子程序:view plain//main.cppinta=0;//全局初始化区char*p1;//全局未初始化区voidmain(){intb;//栈chars[]="abc";//栈char*p2;//栈char* 阅读全文