1 / 6
文档名称:

嵌入式经典面试题.pdf

格式:pdf   大小:160KB   页数:6页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式经典面试题.pdf

上传人:阳仔仔 2021/8/5 文件大小:160 KB

下载得到文件列表

嵌入式经典面试题.pdf

文档介绍

文档介绍:嵌入式经典面试题六:
关键字 static 的作用是什么?
这个简单的问题很少有人能回答完全。在 C 语言中,关键字 static 有三个明显的作用:
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其
它函数访问。它是一个本地的全局变量。
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声
明它的模块的本地范围内使用。
嵌入式经典面试题八:
关键字 volatile 有什么含意?并给出三个不同的例子。
一个定义为 volatile 的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值
了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存
在寄存器里的备份。下面是 volatile 变量的几个例子:
1) 并行设备的硬件寄存器(如:状态寄存器)
2) 一个中断服务子程序中会访问到的非自动变量(Non-automatic variables)
3) 多线程应用中被几个任务共享的变量
1)一个参数既可以是 const 还可以是 volatile 吗?解释为什么。
2); 一个指针可以是 volatile 吗?解释为什么。
下面是答案:
1)是的。一个例子是只读的状态寄存器。它是 volatile 因为它可能被意想不到地改变。它是 const 因为程序
不应该试图去修改它。
2); 是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个 buffer 的指针时。
变量和 static 函数各有什么特点?
static 变量分两种,局部变量和全局变量,他们都放在全局数据区(我觉得表达不准确。全局静态变量
本文件可见,局部静态变量在在定义的 block 内可见;static 函数也放在全局数据区,外部文件不可见;
ROM 的运行方式基于 ram 的运行方式有什么区别
rom 运行方式是指指令从 rom 中取出,首先对 rom 有一定要求(例如按 block 进行读写 nand flash 就不支
持 rom 运行,同时由于 rom 读写的限制,无法完成异常处理,即异常处理函数肯定放在 ram 中)。在有区
别就是片选不一样。
有几种状态?就绪、挂起、阻塞、睡眠、运行