摘要: 3种循环(while循环、do...while循环和for循环)可以相互嵌套。书中给出了6种合法形式。另外两种是否合法呢?(1)饮品店加盟[cpp] view plaincopy在CODE上查看代码片派生到我的代码片 while() {... for(;;) {...} }(2)[cpp] view plaincopy在CODE上查看代码片派生到我的代码片 do{ ... while() {...} ... }while(); 阅读全文
posted @ 2014-02-20 09:46 将夜 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 内核使用了大量不同的宏来标记具有不同作用的函数和数据结构。如宏__init 、__devinit 等。这些宏在include/linux/init.h 头文件中定义。编译器通过这些宏可以把代码优化放到合适的内存位置,以减少内存占用和提高内核效率。下面是一些常用的宏:? ?__init ,标记内核启动时使用的初始化代码,内核启动完成后不再需要。以此标记的代码位于.init.text 内存区域。它的宏定义是这样的:? #define _ _init _ _attribute_ _ ((_ _section_ _ (".text.init")))? ?__exit ,标记退出代码 阅读全文
posted @ 2014-02-20 09:45 将夜 阅读(439) 评论(0) 推荐(0) 编辑
摘要: 信号时软件中断,基本上所有应用程序都处理信号,信号是处理异步事件的方法。10.2信号概念 每个信号都有一个名字,以SIG开头,在头文件中,信号被定义为正整数。编号为0的信号称为空信号。对信号的处理方式:忽略此信号、捕捉此信号、执行系统默认动作。一些信号详细说明:SIGABRT 调用abort函数产生此信号,进程异常终止。SIGCHLD 在一个信号终止或者停止时,这个信号发送给父进程。SIGCONT 此信号发送给当前需要继续运行,而且处于停止状态的进程。SIGEMT 指示一个现实定义的硬件故障。饮品店加盟www.qidouzl.comSIGHUP 如果 终端接口检测到一个连接断开,发送到与终端相 阅读全文
posted @ 2014-02-20 09:37 将夜 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 一、const的作用 const是C语言的一种关键字,起受保护,防止以外的变动的作用!可以修饰变量,参数,返回值,甚至函数体。const可以提高程序的健壮性,你只管用到你想用的任何地方。(一)const修饰参数。const只能修饰输入参数。1、如果输入参数是指针型的,用const修饰可以防止指针被意外修改。 2、如果参数采用值传递的方式,无需const,因为函数自动产生临时变量复制该参数。 3、非内部数据类型的参数,需要临时对象复制参数,而临时对象的构造,析构,复制较为费时,因此建议采用前加const的引用方式传递非内部数据类型。而内部数据类型无需引用传递。(二)const修饰函数返回值。 . 阅读全文
posted @ 2014-01-22 17:37 将夜 阅读(1227) 评论(0) 推荐(0) 编辑
摘要: 下面我做了几个实验:1、多个线程(pthread),使用同一个句柄(一次sqlite3_open,同一个数据库文件),在多个线程中同时使用此句柄,这些线程中有的是进行select操作的,有的是进行update操作的,使用的都是sqlite3_exec函数;结果是没有发现database is locked错误;程序源码(mutitrhead.c):[cpp]view plaincopy#include#include#include#include#include"main.h"#ifdef_WIN32#include#definesleep(x)Sleep((x)*100 阅读全文
posted @ 2014-01-22 17:35 将夜 阅读(2464) 评论(0) 推荐(0) 编辑
摘要: 错误提示:nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadexnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadexlibcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainDebug/Hello.exe : fatal error LNK1120: 3 unresolved extern 阅读全文
posted @ 2014-01-22 17:33 将夜 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事。3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域(.data),未初始化的全局变量和未初始化的静态变量在相邻的另一块区域(.bss)。 - 程序结束后由系统释放。4、文字常量区 —常量字符串就是放在这里的(.rodata)。 程序结束后由系统释 阅读全文
posted @ 2014-01-14 16:44 将夜 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 在C语言的学习中,对内存管理这部分的知识掌握尤其重要!之前对C中的malloc()和free()两个函数的了解甚少,只知道大概该怎么用——就是malloc然后free就一切OK了。当然现在对这两个函数的体会也不见得多,不过对于本文章第三部分的内容倒是有了转折性的认识,所以写下这篇文章作为一个对知识的总结。这篇文章之所以命名中有个“浅谈”的字眼,也就是这个意思了!希望对大家有一点帮助! 如果不扯得太远的话(比如说操作系统中虚拟内存和物理内存如何运做如何管理之类的知识等),我感觉这篇文章应该是比较全面地谈了一下malloc()和free().这篇文章由浅入深(不见得有多深)分三个部分介绍主要内容。 阅读全文
posted @ 2014-01-14 16:43 将夜 阅读(416) 评论(0) 推荐(0) 编辑
摘要: 内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。*内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。所以内部类的成员变量/方法名可以和外部类的相同。1. 成员内部类 成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方. 阅读全文
posted @ 2014-01-09 16:13 将夜 阅读(806) 评论(0) 推荐(0) 编辑
摘要: 串行、并行、并发、CMS、G1、年轻代(Young Gen)、新生代(New Gen)、旧生代(Old Gen)、持久代(Perm Gen)、伊甸区(Eden)、年老区(Tenured)、幸存区(Survivor Spaces)、安全点(Safepoints)以及数百种JVM启动参数。当你试图调整垃圾回收器使你的Java应用程序获得需要的吞吐量和延迟时,这些会难倒你吗?如果回答是,你也不必担心,这样的人还有很多。文档中对垃圾收集的描述感觉就像飞机操作手册一样复杂,每个旋钮和转盘足够详尽细致,但就是搞不清如何飞起来。本文将试图解释在为特定工作负载选择和调整垃圾收集算法时需要了解的权衡点。本文将重 阅读全文
posted @ 2014-01-09 16:11 将夜 阅读(559) 评论(0) 推荐(0) 编辑