首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
admin
2009-02-01
35
问题
阅读以下说明和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
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
软件的可复用性是指______。
有关动态增量备份的描述正确的是(8)。
(16)不属于数据库逻辑结构设计的任务。
开发专家系统时,通过描述事实和规则由模式匹配得出结论,这种情况下适用的开发语言是(27)。
某数据库应用系统在运行过程中,发现随着数据量的不断增加,有部分查询业务和数据更新业务执行耗时越来越长。经分析,这些业务都与表Tablel有关。假设Tablel有30多个字段,分别为(Key,A2,A2,…Am,B1,B2,…Bn)。执行频度较高的查询业务都
计算机运行过程中,遇到突发事件,要求CPU暂时停止正在运行的程序,转去为突发事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为(1)________________,其处理过程中保存现场的目的是(2)________________。
下列关于函数依赖的叙述中,错误的是(50)________________。
假设某企业信息管理系统中的5个实体:部门(部门号,部门名,主管,电话),员工(员工号,姓名,岗位号,电话),项目(项目号,名称,负责人),岗位(岗位号,基本工资),亲属(员工号,与员工关系,亲属姓名,联系方式)。该企业有若干个部门,每个部门有若干名员工;每
阅读下列说明和表,回答问题,将解答填入答题纸的对应栏内。【说明】防火墙类似于我国古代的护城河,可以阻挡敌人的进攻。在网络安全中,防火墙主要用于逻辑隔离外部网络与受保护的内部网络。防火墙通过使用各种安全规则来实现网络的安全策略。防火墙的
在事件1中,你认为监理公司在监理规划编制方面是否有不妥之处?为什么?根据事件3中确定的“进度控制程序”的实施原则,把下列进度控制的工作按照正确的顺序通过下面给出的框图联系起来(将工作序号恰当地填写到框图中),形成进度控制工作程序图。①基
随机试题
()的齿形特点是齿顶及槽底均向离合器轴线收缩,齿侧是一个通过轴线的径向平面。
过多的,过度的;极端的adj.e________
前置胎盘的处理,以下哪项错误
国际上,强制性的工程保险主要有以下几种:建筑工程一切险(附加第三者责任险)、安装工程一切险(附加第三者责任险)、社会保险(如人身意外险、业主责任险和其他国家法令规定的强制保险)、机动车辆险、10年责任险和5年责任险、专业责任险等等。其中()是对工程
背景资料拦河闸工程,建设单位与施工单位按照《建设工程施工合同(示范文本)》签订了施工合同,合同工期9个月,合同价840万元,各项工作均按最早时间安排且匀速施工,经项目监理机构批准的施工进度计划如下图所示(时间单位:月),施工单位的报价单(部分)见
与其他招聘方法相比,网络招聘的优点是()。
2×16年12月31日,甲公司自行研发尚未完成但符合资本化条件的开发项目的账面价值为3500万元,预计至开发完成尚需投入300万元。该项目以前未计提减值准备。由于市场出现了与其开发相类似的项目,甲公司于年末对该项目进行减值测试,经测试表明:扣除继续开发所需
材料:下面是一位学生和教师的谈话。学生:老师,别人都说“一分耕耘,一分收获”,可为什么我怎么努力,成绩却总是很差呢?教师:你这么努力学习,是为了什么呢?学生:为了上大学啊!教师:那上大学是为什么呢?
IntheUnitedStates,itisnotcustomarytotelephonesomeoneveryearlyinthemorning.Ifyoutelephonehimearlyintheday,
LocalNewspapersinBritain1.Britainhasalargecirculation(发行量)ofthenationalnewspapers.TheDailyMirrorandTheDail
最新回复
(
0
)