摘要: switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而,switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项 阅读全文
posted @ 2016-08-09 08:43 balingybj 阅读(19448) 评论(2) 推荐(4) 编辑
摘要: 问题:产生n位元的所有格雷码。格雷码(Gray Code)是一个数列集合,每个数使用二进位来表示,假设使用n位元来表示每个数字,任两个数之间只有一个位元值不同。例如以下为3位元的格雷码:000 001 011 010 110 111 101 100 。如果要产生n位元的格雷码,那么格雷码的个数为2^... 阅读全文
posted @ 2015-09-09 23:46 balingybj 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 结构体的内存布局依赖于CPU、操作系统、编译器及编译时的对齐选项。结构体内部成员的对齐要求,结构体本身的对齐要求。最重要的有三点(一)成员对齐。对于结构体内部成员,通常会有这样的规定:各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数。但是也可以看到,有时候某... 阅读全文
posted @ 2015-09-07 23:34 balingybj 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 内核级线程切换由内核控制,当线程进行切换的时候,由用户态转化为内核态。切换完毕要从内核态返回用户态;可以很好的利用smp,即利用多核cpu。windows线程就是这样的。用户级线程内核的切换由用户态程序自己控制内核切换,不需要内核干涉,少了进出内核态的消耗,但不能很好的利用多核Cpu,目前Linux... 阅读全文
posted @ 2015-09-07 23:07 balingybj 阅读(3618) 评论(0) 推荐(0) 编辑
摘要: 线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID 每个线程都... 阅读全文
posted @ 2015-09-07 22:52 balingybj 阅读(2200) 评论(0) 推荐(0) 编辑
摘要: 原型声明:extern char *strcpy(char *dest,const char *src);头文件:string.h功能:把从src地址开始且含有‘\0’结束符的字符串赋值到以dest开始的地址空间说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符... 阅读全文
posted @ 2015-09-05 19:15 balingybj 阅读(910) 评论(0) 推荐(0) 编辑
摘要: 原型 extern char *strcat(char *dest,char *src);用法 #include 功能 把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。返回指向dest的指针。说明 src和dest所指内存区域不可以重叠且... 阅读全文
posted @ 2015-09-05 19:10 balingybj 阅读(5104) 评论(1) 推荐(1) 编辑
摘要: strstr函数:返回主串中子字符串的位置后的所有字符。#include const char *my_strstr(const char *str, const char *sub_str){ for(int i = 0; str[i] != '\0'; i++) { i... 阅读全文
posted @ 2015-09-05 18:54 balingybj 阅读(5371) 评论(0) 推荐(0) 编辑
摘要: 1.函数指针——指针函数 函数指针的重点是指针。表示的是一个指针,它指向的是一个函数,例子: int (*pf)(); 指针函数的重点是函数。表示的是一个函数,它的返回值是指针。例子: int* fun(); 其实也可以通过运算符优先级来判断,()优先级比*优先级要高。 2.数组指针——指针数组 数 阅读全文
posted @ 2015-09-05 17:47 balingybj 阅读(2460) 评论(1) 推荐(0) 编辑
摘要: 核心态和用户态是操作系统两种运行级别。核心态就是拥有资源较多的状态,或者说访问资源多的状态,也称之为特权态;相对来说,用户态就是非特权态,访问资源将受到限制。核心态下CPU可执行任何指令,而用户态下CPU只能执行非特权指令。当CPU处于核心态时可随意进入用户态;而处于用户态时,切换到核心态只有在系统... 阅读全文
posted @ 2015-09-05 13:24 balingybj 阅读(1077) 评论(1) 推荐(0) 编辑