首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
admin
2009-02-01
71
问题
阅读以下说明和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
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
以下哪类网络使用双绞线作为传输媒体?______
数据仓库系统通常采用3层的体系结构,底层为数据仓库服务器,中间层为(12),顶层为前端工具。
DBS的体系结构,按照ANSI/SPARC报告分为(1);在DBS中,DBMS的首要目标是提高(2);为了解决关系数据库的设计问题,提出和发展了(3);对于DBS,负责定义DB结构以及安全授权等工作的是(4)。
DW中的脏数据是指数据获取过程中出现的______的数据。
在OODB中,包含其他对象的对象,称为______。
ISO 9001-2000是ISO 9000系列标准的最新成果,它取代了(24)标准。
某系统的可靠性结构框图如图3-5所示。该系统由4个部件组成,其中2、3两部件并联冗余,再与1、4部件串联构成。假设部件1、2、3的可靠度分别为0.90、0.70、 0.70,若要求该系统的可靠度不低于0.75,则进行系统设计时,分配给部件4的可靠度至少应为
以下关于软件测试的叙述中,正确的是()。
分组密码常用的工作模式包括:电码本模式(ECB模式)、密码反馈模式(CFB模式)、密码分组链接模式(CBC模式)、输出反馈模式(OFB模式)。下图描述的是(53)________________模式(图中Pi表示明文分组,Ci表示密文分组)。
随机试题
完全互换性:
男,53岁,打鼾,憋气2年,伴白天困乏、嗜睡,查:下鼻甲肥大,扁桃腺Ⅲ度,舌体正常。PSG示血氧降低,呼吸暂停,口鼻气流停止时,膈肌兴奋性增强,收缩。如该患者PSG示血氧最低为80%,CPAP无效,应考虑的治疗方法为
当牙石指数(CI)为1时,是指
患者,男性,78岁。因腹泻5天,昏睡4小时来急诊。既往有高血压病史35年,无糖尿病史。查体:心率106次/分,呼吸22次/分,血压90/50mmHg,意识朦胧。检查时手足乱动,配合欠佳,皮肤弹性差,两肺未闻及干、湿啰音。腹软,肝脾未扪及,双下肢胫前轻度可
紫杉醇的抗癌作用机制为()。
编制概算时,GIS组合电器电压互感器间隔的安装如何套用定额?
无风险报酬率可参考()。
五星红旗作为国旗是在()上确定的。
下列关于赔偿请求人要求行政赔偿程序的说法中正确的有()。
JoyceSipesandMaryEllenDodgeWhenJoyceSipeswasdiagnosedwithbreastcancerin1999,shesharedthenewsimmediatelyw
最新回复
(
0
)