1.进程和线程的区别:
进程是拥有资源的基本单位,线程是独立调度的基本单位
2.线程是否具有相同的堆栈?
进程是死的,只是一些资源的集合,真正的程序执行都是线程来完成的,程序启动的时候操作系统就帮你创建了一个主线程。
每个线程有自己的堆栈。
对于堆来说,每个DLL(动态链接库文件)有自己的堆.
3.TCP与UDP的区别:
TCP面向连接,可靠传输
UDP无连接,非可靠传输
4.死锁的处理方式有哪些?
1.死锁预防
2.避免死锁
3.死锁的检测及解除
5.死锁的4个必要条件
1.互斥条件
2.不剥夺条件
3.请求并保持条件
4.循环等待条件
6.产生死锁的原因是什么?
死锁是指多个进程因竞争资源而互相等待,造成僵局
原因一:竞争资源
原因二:进程推进顺序非法
7.进程之间通信的途径有哪些?
1.共享存储
2.消息传递
3.管道通信,管道通信是消息传递的一种特殊方式。
管道又名pipe文件
8.什么是预编译?
预编译又称为预处理 , 是做些代码文本的替换工作
C 编译系统在对程序进行通常的编译之前,首先进行预处理。
9.何时需要预编译?
1.总是使用不经常改动的大型代码体。
2.程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。
在这种情况下,可以将所有包含文件预编译为一个“预编译头”
10.一个32位的机器,该机器的指针是多少位?4字节
如果是64位,就是8B
11.static函数与普通函数有什么区别?
静态函数不能被其他代码文件调用,普通函数可以被其他代码文件调用
static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝
定义静态函数,其他文件中可以定义相同名字的函数,不会发生冲突。
12.写一个”标准“宏MIN,这个宏输入两个参数,返回较小的一个
#define MIN(x,y) (x < y? x : y)
13.如何用c编写死循环?
1.while(1){ ; }//1比2效率高
2.for( ; ; ) { ; }
3.//嵌入式编程
LOOP:
.....
goto LOOP;
本文介绍了进程与线程的区别,强调线程有自己的堆栈,每个DLL有自己的堆。讨论了TCP和UDP的特性,TCP为可靠连接,UDP则为无连接、非可靠的传输。接着,概述了死锁的概念、处理方式及产生的原因。提到了进程间通信的三种途径,并解释了预编译的作用和适用场景。此外,还对比了静态函数与普通函数,并展示了C语言中创建死循环的方法。
2569

被折叠的 条评论
为什么被折叠?



