知识点小结
Cecilia3333
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POSIX信号量
信号量是一种临界资源,它的本质是计数器。信号量的基本操作有两种:P操作和V操作。P操作相当于给计数器减一,V操作相当于给计数器加一。信号量描述了其所要保护的临界资源的数目。因为信号量本身也是一种临界资源,所以我们用它去保护其他临界资源的前提是要保证信号量自身操作的原子性。POSIX信号量和SystemV信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源的目的。单POSIX可以用于线程间同步...原创 2018-04-22 20:30:23 · 290 阅读 · 0 评论 -
线程等待与分离
线程等待需要线程等待的原因:1.已经退出的线程,其空间没有被释放,仍然在进程的地址空间内。2.创建新的线程不会复用刚才退出线程的地址空间。pthread_join函数:函数原型:int pthread_join(pthread_t thread,void **value_ptr);功能:等待线程结束。参数:thread,线程ID。返回值:成功返回0;失败返回错误码。调用该函数的线程将挂...原创 2018-04-14 22:53:33 · 339 阅读 · 0 评论 -
自定义类型知识点小结
一. 结构体1. 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。2.结构的声明:这里的tag指的是结构体的名称,原则上可以省略,但一般不建议省略。举个例子,这里我们定义一个关于学生基本信息的结构体:3.结构体成员:结构体的成员可以是标量,数组,指针,甚至是其他结构体。这里的标量指的是int , char , float ,原创 2017-12-29 23:07:11 · 493 阅读 · 0 评论 -
指针 数组 函数
1.指针数组:指针数组是数组,这个数组用来存放指针。例:int *arr[10]; 整形指针数组; char **arr[10]; 字符型的二级指针数组2.数组指针:数组指针是指针,指针指向的是数组。例:int (*p)[10]; 数组指针([ ] 的优先级高于*,所以需要加上( )来保证p先与*结合)3.函数指针:函数指针是指针,指针指向的是一个函数。原创 2017-12-19 22:55:29 · 921 阅读 · 0 评论 -
可变参数列表解析
将函数实现为可变参数的形式,可使函数接受1个以上的任意多个参数。例:实现一个函数求任意多个参数的平均值。可变参数的限制:1.可变参数必须从头到尾逐个访问;2.参数列表中至少有一个命名参数;3.宏无法直接判断实际存在参数的数量;4.宏无法判断每个参数的类型。原创 2017-12-12 16:40:39 · 276 阅读 · 0 评论 -
浅谈函数的调用过程,栈帧的创建和销毁
原码:按到 f10 ,转到反汇编:call命令的功能:1.将当前正在执行指令的下一条指令的地址压入栈中 ; 2.随即跳转(jmp)至指定函数ret 返回要做的两件事 : 1.弹出pop栈顶; 2.弹出栈顶的值的地原创 2017-12-07 00:29:07 · 321 阅读 · 0 评论 -
数组知识点小结
char arr[ ]="abcdef" 中有七个元素,分别为 a , b , c , d , e , f , \0不能分配常量大小为0的数组。访问数组要用下标访问,且下标要从0开始。数组在内存中连续存放。数组的数组名相当于数组首元素的地址。sizeof(数组名),数组名表示整个数组,求的是整个数组的大小;&数组名,数组名表示整个数组,取出来的是数组的地址。除此之外,所有的数原创 2017-11-19 22:28:18 · 893 阅读 · 0 评论 -
C语言操作符小结
算术操作符:+,, -, *, /, %移位操作符:> 右移 (左移一位等效于乘2,右移一位等效于除以2) 右移分为算术移位和逻辑移位。算数移位时,左边用原该值的符号位填充,右边丢弃;逻辑移位时,左边用0填充,右边丢弃。位操作符:& 按位与 , | 按位并 , ^ 按位异或原创 2017-11-18 22:38:59 · 284 阅读 · 0 评论 -
线程同步与互斥
mutex(互斥量)大部分情况下,线程使用的数据都是局部变量,变量的地址空间在线程的栈空间内。这种情况下,变量归属于单个线程,其他线程无法获得这种变量。但有时候,很多变量都需要在线程间共享,这样的变量称为共享变量,可以通过数据的共享,完成线程之间的交互。多个线程并发的操作共享变量,会带来一些问题。代码实例:#include <stdio.h>#include<stdlib.h&...原创 2018-04-15 00:21:08 · 190 阅读 · 0 评论
分享