C/C++
文章平均质量分 72
houxiangr
这个作者很懒,什么都没留下…
展开
-
《C陷阱与缺陷》第一章
《C陷阱与缺陷》第一章本章导读部分:利用p->s="->";这个语句展示了相同符号在上下午环境不同的情况下解释是可以不同的。并通过if(x>big) big=x;这个例子加深了对词法分析的理解。本章正文:1.1,=与==。使用if(a=b)所进行的判断是将b的值赋给a并判断a是不是为0;使用if(a==b)是表示a和b是否相等;本书一个比较具有代表性的例子while(c=' '|...原创 2018-06-11 16:00:58 · 278 阅读 · 0 评论 -
《C陷阱与缺陷》第二章
《C陷阱与缺陷》第二章2.1 ,理解函数声明提出问题:如何调用0指针指向的函数分析((void()())0)();首先分析float g(),(h)();在上例中g是一个函数返回值为float指针h为一个函数指针,此函数返回值为float即定义一个返回值指向float的函数指针为float (h)();表示这种类型只需要将变量名去掉,即float ()();则返回值为void的函数指针的类型为 v...原创 2018-06-11 16:02:48 · 270 阅读 · 0 评论 -
《C陷阱与缺陷》第三章
《C陷阱与缺陷》第三章3.1,指针与数组数组的一些基本操作都可以通过指针的操作来实现。实际上C语言为了方便,数组就是利用指针来实现的。int main{ int num[5][5]; int *p; int i; p=num[4]; i=num[4][3]; //等价于*(num[4]+3),等价于*(*(num+4)+3) return 0;}数组和指针最大的区别就是:数组访问时...原创 2018-06-11 16:04:19 · 182 阅读 · 0 评论 -
《C陷阱与缺陷》第四章
《C陷阱与缺陷》第四章--连接4.1、什么是连接器连接器是将多个通过编译器编译后的C源程序,连接成一个载入模块4.2、声明和定义变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。变量声明:用于向程序表明变量的类型和名字,声明不分配空间。extern int i //声明int i //定义一个变量可以声明多次,只能定义一次。在程序的一个地方使用extern ...原创 2018-06-11 16:04:57 · 413 阅读 · 0 评论 -
《C陷阱与缺陷》第五章
《C陷阱与缺陷》第五章--库函数5.1,返回整数的getchar函数在C语言的库函数中,将getchar函数的返回值定义为int(防止char溢出,例如char表示不了EOF)。5.2、更新顺序文件根据C语言库函数中的fread(),fwrite().fseek()函数的用法,在fread和fwrite函数交替调用时,每次都要使用fseek()来改变文件指针的性质。根据周文导师的说法:多数情况下,...原创 2018-06-11 16:05:30 · 199 阅读 · 0 评论 -
《C陷阱与缺陷》第六章,第七章
《C陷阱与缺陷》第六章--预处理器6.1、不能忽视宏定义中的空格#define f (x) ((x)-1) //f(x)代表(x)((x)-1)6.2、宏并不是函数(1)宏中的每个变量必须加上括号,不然会出现传入表达式时难以预料的结果(2) 宏中的每个传入的值都会进行多次运算,传入参数会改变某个变量时,会改变多次(3)使用宏可能会使得语句非常庞大,在进行语句替换的过程中,语句有可能变得异常复...原创 2018-06-11 16:06:57 · 167 阅读 · 0 评论 -
《Windows核心编程》第二部分(线程调度,优先级和亲缘性)
(4)线程调度,优先级和亲缘性如上所诉,在每个线程内核对象中都有一个CONTEXT结构,其中保存了线程上一次运行寄存器的情况,在线程调度中,windows大约每隔20ms就会从线程内核对象中选出一个可调度的线程,将其CONTEXT还原到CPU寄存器中,如此循环。我们对操作系统内部的线程调度可以做出的影响很小,无法保证一个线程在某个时间段一直运行。一般可调度的进程比较少,大多线程都在等待某个其他事件...原创 2018-06-12 14:15:38 · 428 阅读 · 0 评论 -
《Windows核心编程》第二部分(用户模式下的线程同步)
(5)用户模式下的线程同步线程必须访问系统资源,如果一个线程独占了对一个资源的访问,那么其他线程就需要做同步处理。必须限制线程对已经被占有的共享资源的访问。比如一个线程在对一个内存进行占有时其他线程就要做同步处理,限制其他线程占有此内存。线程之间的通信可以让多个线程约定访问一个线程,同时不破坏资源的完整性;一个线程可以通知其他线程某项任务已完成。线程同步的windows下的几种方法:(1)原子访问...原创 2018-06-12 14:16:38 · 174 阅读 · 0 评论 -
《Windows核心编程》第二部分(内核模式下的线程同步)
(6)内核模式下的线程同步用户模式主要优点为速度快,内核模式相对于用户模式的区别是可以对多个值进行操作,也可以对不同进程下的线程进行同步操作,但是速度会比较慢(模式的切换,高速缓存命中率下降)。几乎所有的内核对象都可以进行线程同步。内核对象内部有两种状态,一种是未触发状态(比如,进程内核对象刚创建的时候)和触发状态(比如,对应进程终止的时候),每个内核对象内部有一个bool值来监控这两种状态。//...原创 2018-06-16 15:28:06 · 237 阅读 · 0 评论