首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
admin
2009-02-01
57
问题
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。
【说明】
在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4个不同设备驱动程序,但没有用到函数指针变量。
【C语言代码】
/*变量与类型说明*/
#include "stdio.h"
#include "stdlib.h"
extern int sys_status;
extern int Dev_drv1(int arg1, int arg2);
extern int Dev_drv2(int arg1, int arg2);
extern int Dev_drv3(int arg1, int arg2);
extern int Dev_drv4(int arg1, iht arg2);
#define NOERROR 0
type struct {
int _fd;
} TYP_DEV_TAB;
TYP DEV_TAB dev_tab[50]= {101,99, 80, 120,};
/*程序代码*/
void manage_device(int devid, int arg1, int arg2)
{ int place ;
int ret;
for(place=0 ; place<50 ; place++)
if dev_tab [place]. fd == devid) break;
if(place>=50)
printf(" NO DEVICE fd = %d\n ",devid);
switch(dev_tab [place]._fd) {
case 80:
ret = Dev_drv3(int arg1,int arg2);
break;
case 99:
ret = Dev_drv2(int arg1,int arg2);
break;
case 101:
ret = Dev_drv1(int arg1,int arg2);
break;
case 120:
ret = Dev_drv4(int arg1,int arg2);
break;
}
if (ret!=NOERROR)
printf(" DEVICE %d error!\n ", devid);
}
int Dev_drv1(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
}
int Dev_drv2(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
}
int Dev_drv3(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
}
int Dev_drv4(int arg1,int arg2)
{
/*局部变量声明,略*/
/*驱动程序代码,略*/
选项
答案
(1)int (*process)(int arg1,int arg2); (2)int (*ProcAction)(int arg1,int arg2); (3)ProcAction=dev_tab[place].process; (4)ret=ProcAction(arg1,arg2);
解析
本题考查对C语言中函数指针变量的理解和用法。在C语言中,可以用指针变量指向整型变量、字符串、数组、结构变量,也可以指向一个函数,对指针的用法非常灵活,也很容易出错。其中,函数指针变量为较高级的用法。
一个函数在编译时被分配给一个入口地址,这个入口地址就称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。
本题已将使用变量指向函数编写设备驱动程序的大部分给出,只需在对函数指针变量的声明和引用处,只需给出正确的用法即可。
转载请注明原文地址:https://kaotiyun.com/show/hmWZ777K
本试题收录于:
嵌入式系统设计师下午应用技术考试题库软考中级分类
0
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是______。
设关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→C,D→B},ρ={ACD,BD}是R上的一个分解,那么分解ρ______。
在SQL的查询语句中,允许出现聚集函数的是(23)。
James Martin明确计算机有4类数据环境,独立于应用项目,具有较低的维护成本,应用开发效率较高的是(7)。
分布式数据库系统中查询处理的一般过程是:由全局数据库管理系统在查询产生结点时对查询进行词法和语法分析,生成(17);(17)进行变换,查询分解,把全局查询分解成若干个子查询,确定处理子查询结果的运算次序和结点;对子查询进行优化和执行:最后是子查询结果的汇总
有关动态增量备份的描述正确的是(8)。
有关概念结构设计,下列说法正确的是(15)。
某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续天数,则完成该项目的最少时间为(27)________________天。活动EH和IJ的松弛时间分别为(28)________________天。
计算机中机械硬盘的性能指标不包括(4)________________。
X.509数字证书的内容不包括__________________。
随机试题
(13—04)根据《联合国国际货物销售合同公约》的规定,_____。
A、最优化原则B、全社会参与原则C、生命神圣的原则D、随机对照原则E、公开透明的原则预防医学的道德原则之一是
“有皮肤完整性受损的危险”,这一护理诊断属于()。
依据我国《反垄断法》的规定,经营者集中是指()。
根据下面材料,回答问题。在电影《黑客帝国》中,基努.里维斯通过脑后插管直接与虚拟世界沟通,电影中的场景如今成为了现实,美国华盛顿大学的研究人员近日成功实现通过直接的大脑刺激输入与虚拟现实世界交互,操作电脑游戏。美国华盛顿大学的研究人员在
1,1/4,1/9,1/16,( )
《木兰诗》是我国北朝时期的一首______。
矢量图是常用的图形图像表示形式,(10)是描述矢量图的基本组成单位。
女士们、先生们,欢迎大家出席今年首场外交部例行记者会。在新的一年里,我们将继续通过这个平台,向大家更好地介绍中国外交。我们也希望媒体的朋友们能够向世界报道好中国,解读好中国。祝愿大家在新的一年里工作顺利,万事如意。首先,我向各位通报,应埃塞俄比亚
Thissortofsituationhighlightsacriticalweaknessintheleadershipofthecountry:accountability.
最新回复
(
0
)