gongji110 于 2008-04-25 09:52:57发表:
1.C语言中volatile关键字的作用是: 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。 一般说来,volatile用在如下的几个地方: 1、中断服务程序中修改的供其它程序检测的变量需要加volatile; 2、多任务环境下各任务间共享的标志应该加volatile; 3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义; 另外,以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),在1中可以通过关中断来实现,2中可以禁止任务调度,3中则只能依靠硬件的良好设计了。 [fzq21ic]答: 简单点:就是该变量会以编译器无法预知的方式发生变化,请编译器不要做优化(所有的编译器的优化均假设编译器知道变量的变化规律) 2.IPC(interprocess communication)有以下几种; <1>.管道,分为有名管道(FIFO)和无名管道; <2> 共享内存; <3> 映射内存; <4> 信号灯和消息队列; 3. 使用函数pipe创建管道: #include int pipe(int filedes[2]); 只能说这么多了,其他的我也不知道了。 看来这个公司要求的挺高阿。
gongji110 于 2008-04-25 09:52:57发表:
1.C语言中volatile关键字的作用是:
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
一般说来,volatile用在如下的几个地方: 1、中断服务程序中修改的供其它程序检测的变量需要加volatile; 2、多任务环境下各任务间共享的标志应该加volatile; 3、存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写都可能由不同意义; 另外,以上这几种情况经常还要同时考虑数据的完整性(相互关联的几个标志读了一半被打断了重写),在1中可以通过关中断来实现,2中可以禁止任务调度,3中则只能依靠硬件的良好设计了。 [fzq21ic]答: 简单点:就是该变量会以编译器无法预知的方式发生变化,请编译器不要做优化(所有的编译器的优化均假设编译器知道变量的变化规律)
2.IPC(interprocess communication)有以下几种;
<1>.管道,分为有名管道(FIFO)和无名管道;
<2> 共享内存;
<3> 映射内存;
<4> 信号灯和消息队列;
3. 使用函数pipe创建管道:
#include
int pipe(int filedes[2]);
只能说这么多了,其他的我也不知道了。
看来这个公司要求的挺高阿。