摘要: sort()函数是C++中的排序函数其头文件为:#include<algorithm>头文件;qsort()是C中的排序函数,其头文件为:#include<stdlib.h>1、sort()sort对给定区间所有元素进行排序stable_sort对给定区间所有元素进行稳定排序partial_sort对给定区间所有元素部分排序partial_sort_copy对给定区间复制并排序nth_element找出给定区间的某个位置对应的元素is_sorted判断一个区间是否已经排好序partition使得符合某个条件的元素放在前面stable_partition相对稳定的使得符合 阅读全文
posted @ 2013-03-11 23:58 Mr.Shadow 阅读(292) 评论(0) 推荐(0) 编辑
摘要: Folks often see output statements like the two below, and then want to know what the difference is:#include <iostream>int main(){int i = 99;std::cout << i << '\n'; // Astd::cout << i << std::endl; // Breturn 0;}In short, using'\n'is a request to output a 阅读全文
posted @ 2013-03-11 23:32 Mr.Shadow 阅读(240) 评论(0) 推荐(0) 编辑
摘要: humb指令集可以看作是ARM指令压缩形式的子集,它是为减小代码量而提出,具有16bit的代码密度。Thumb指令体系并不完整,只支持通用功能,必要时仍需要使用ARM指令,如进入异常时。其指令的格式与使用方式与ARM指令集类似,而且使用并不频繁,Thumb指令集作一般了解。 在编写Thumb指令时,先要使用伪指令CODE16声明,编写ARM指令时,则可使用CODE32伪指令声明。 1、Thumb指令集没有协处理器指令、信号量指令、以及访问CPSR或SPSR的指令,没有乘加指令及64位乘法指令等,且指令的第二操作数受到限制; 2、大多数的Thumb数据处理指令采用2地址格式; ... 阅读全文
posted @ 2013-03-09 14:25 Mr.Shadow 阅读(822) 评论(0) 推荐(0) 编辑
摘要: nitInit是位于/sbin/init的一个程序,它是在linux下,在系统启动过程中,初始化所有的设备驱动程序和数据结构等之后,由内核启动的一个用户级程序,并由此init程序进而完成系统的启动过程。ubuntu与传统的linux略有不同,使用upstart完成系统的启动,但表面上仍维持init程序的形式。运行级别传统上,linux有几种不同的运行级别,包括如下几种: # 0 -停机# 1 -单用户模式# 2 -多用户,没有NFS# 3 -完全多用户模式(标准的运行级)# 4 –系统保留的# 5 – X11(x window)# 6 -重新启动系统启动后处于哪一种级别由init读取/etc/ 阅读全文
posted @ 2013-03-09 07:47 Mr.Shadow 阅读(488) 评论(0) 推荐(0) 编辑
摘要: Bumblebee aims to provide support for NVIDIA Optimus laptops for GNU/Linux distributions. Using Bumblebee, you can use your NVIDIA card for rendering graphics which will be displayed using the Intel card. InstallationBumblebee 3.0 is supported up to Ubuntu version 12.04. Currently, you need to ope.. 阅读全文
posted @ 2013-02-15 18:59 Mr.Shadow 阅读(650) 评论(0) 推荐(0) 编辑
摘要: 根文件系统是内核启动时所mount的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。我们要明白文件系统和内核是完全独立的两个部分。在嵌入式中移植的内核下载到开发板上,是没有办法真正的启动Linux操作系统的,会出现无法加载文件系统的错误。/bin,/sbin,/usr/bin和/usr/sbin。这里简单介绍一下它们的区别:/bin目录一般存放对于用户和系统来说都是必须的二进制文 件,而/sbin目录要存放的是只针对系统管理的二进制文件,该目录的文件将不会被普通用户使用。相反, 阅读全文
posted @ 2013-02-05 14:01 Mr.Shadow 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 在尝试使用bochs时,会有如下提示:bochs-bin:symbollookuperror:/usr/lib/bochs/plugins/libbx_x.so:undefinedsymbol:XpmCreatePixmapFromData这个问题本来以前解决过,结果忘了。上网一搜,找到了答案:http://overflowedstack.wordpress.com/2012/05/07/solve-bochs-crash-on-start-problem-under-ubuntu-12-04/作者指出,我们换一种显示的方案就可以了。首先按照bochs-sdl,用apt-get可以安装。在我们 阅读全文
posted @ 2013-02-04 23:08 Mr.Shadow 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 每个目标里都可以运行shell命令,每个命令前以[Tab]开头,它不能是空格。通常情况下,你执行的命令会在输出中显示出来,比如:output: echo hello运行make会有如下结果:$ make outputecho hellohello有时我们不希望把执行的命令显示出来,我们可以在命令前加上@符来隐藏这个命令:output: @echo hello$ make output hellomake命令本身也带有选项来隐藏所有命令的输出,它是-s或--silent。与它相反的是-n或--just-print,它们只显示命令却不执行它们。注意makefile里的命令是一行一行执行的,而且各行 阅读全文
posted @ 2013-02-04 11:17 Mr.Shadow 阅读(403) 评论(0) 推荐(0) 编辑
摘要: $(NAME)和${NAME}表示一个变量。变量名是大小写敏感的。$$表示“$”字符本身。我们可以通过=号把一个变量(或常量、或变量和常量的组合)赋给别的变量。同样我们也可以用:=来给变量赋值。它们的区别在于=号会使用之后定义的变量的值,而:=号不会取之后定义的变量的值。比如:X1=aX2=$(X1)+$(X4) #X2=a+zX3:=$(X1)+$(X4) #X3=a+X4=z另一个赋值符是?=。它表示如果变量没有定义过则赋值,否则就不赋值。还有一个赋值符是+=,可以将变量的现有值和右值合并。define也可以用来定义变量:define S7uvw# S7=uvwendef其实define的 阅读全文
posted @ 2013-02-04 11:16 Mr.Shadow 阅读(439) 评论(0) 推荐(0) 编辑
摘要: if分支结构为:<if>...[else...]endif其中<if>有四种关键字:ifeq判断相等,它的用法有:ifeq (<arg1>, <arg2> )ifeq '<arg1>' '<arg2>'ifeq "<arg1>" "<arg2>"ifeq "<arg1>" '<arg2>'ifeq '<arg1>' "<arg 阅读全文
posted @ 2013-02-04 11:15 Mr.Shadow 阅读(779) 评论(0) 推荐(0) 编辑