摘要: 一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不... 阅读全文
posted @ 2014-10-02 14:03 chrispauls 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。1.计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。2.假定工厂的电力有限,一次只能供给一个车间使用。也就是... 阅读全文
posted @ 2014-10-02 13:59 chrispauls 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:#define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#define... 阅读全文
posted @ 2014-10-02 13:32 chrispauls 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如: #define PI 3.1415926 程序中的:area=PI*r*r 会替换为3.1415926*r*r 如果你把#defin... 阅读全文
posted @ 2014-10-02 13:32 chrispauls 阅读(124) 评论(0) 推荐(0) 编辑
摘要: ANSIC的,如果认为malloc(0)是语法错误的话,下面我写的就不用看了。 下面进入正题,关于malloc(0)这个问题,我在网上看到有个面试题好像就是问这个的,原题好像是:char*ptr; if((ptr=(char*)malloc(0))==NULL)puts("Gotanullpoint... 阅读全文
posted @ 2014-10-02 13:23 chrispauls 阅读(137) 评论(0) 推荐(0) 编辑
摘要: #include#include#includeint main(void){ char *p1 = "name"; char *p2; /* 未知指针:char *p2 = NULL */ p2 = (char*)malloc(2... 阅读全文
posted @ 2014-09-30 22:48 chrispauls 阅读(475) 评论(0) 推荐(0) 编辑