首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
admin
2009-02-01
63
问题
阅读以下说明和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
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
在数据库方式下,信息处理中占据中心位置的是______。
下列不属于DBMS的主要功能的是( )。
下列叙述中,与提高软件可移植性相关的是(12)。
堆是一种数据结构,(2)是堆。
将一个信道按频率划分为多个子信道,每个子信道上传输一路信号的多路复用技术称为______。
算术表达式采用后缀式表示时不需要使用括号,使用(5)________________就可以方便地进行求值。a-b*(c+d)(其中,-、+、*表示二元算术运算减、加、乘)的后缀式为(6)________________,与该表达式等价的语法树为(7)___
下图所示的扩展E—R图中,属性“电话”属于(62)________________,在逻辑结构设计中,该图中的(63)________________属性将不会被转换到关系模式中。
假设铁路自动售票系统有n个售票终端,该系统为每个售票终端创建一个进程Pj(i=1,2,…,n)管理车票销售过程。假设Tjj=1,2,…,m)单元存放某日某趟车的车票剩余票数,Temp为Pi进程的临时工作单元,x为某用户的购票张数。Pi进程的工作流程如下图所
用哈希表存储元素时,需要进行冲突(碰撞)处理,冲突是指(9)________________。
计算机中机械硬盘的性能指标不包括(4)________________。
随机试题
女,36岁,不慎自3米高处坠落,昏迷15分钟后清醒,诉头痛,恶心,呕吐2次,非喷射性,神经系统检查尚无阳性体征发现。在随后的治疗观察过程中出现下列情况,与颅内血肿无关的是
肺癌的基本治疗原则是
甲、乙、丙三人对一架钢琴为共同共有,甲欲将该钢琴卖与丁,下列各项中,甲的卖与行为有效的有()。
用熔断器保护的电压互感器回路,可不验算动、热稳定。()
根据《银行业监督管理法》规定,下列属于中国银监会监管职责的是()。
《蓝色多瑙河》的作者是理查.施特劳斯。
某市拟对城区内约占2000亩地棚户区进行改造。市委市政府组织了大量人力物力进行了调研,经过专家论证,市委讨论研究后,决定分三步实施。在讨论中尤其突出要解决好低收人群体的生活等一系列问题,强调要关注民生、保障民生和改善民生。问:在棚户区改造中,如何做到关注
A、 B、 C、 D、 C
DVD-ROM光盘可存储17GB的信息,比普通CD-ROM光盘的存储容量(650MB)大。DVD-ROM光盘是通过______来提高存储容量的。A.减小读取激光波长,减小光学物镜数值孔径B.增大读取激光波长,增大光学物镜数值孔径C.增大读取激光波长,
要求在页面页脚中显示“第X页,共Y页”,则页脚中的页码“控件来源”应设置为()。
最新回复
(
0
)