首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
admin
2009-02-01
44
问题
阅读以下说明和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
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
程序设计语言引入“类”的概念是为了解决数据保护问题。C++语言将类的成员封装在类体之中,使之具有一定的存取规则,这些规则规定了存取类的成员的权利,其中,对于用private说明的成员,它(62)。
中国采用的电视的制式是(1),采用(2)彩色空间,它的帧频是(3),电视数字化的标准是(4)。
数据仓库系统通常采用3层的体系结构,底层为数据仓库服务器,中间层为(12),顶层为前端工具。
SQL语言的中文名称为( )。
在进行数据查询时,用户编写的应用程序只对全局关系进行操作,而不必考虑数据的逻辑分片,这需要分布式数据库至少要提供______。
有关概念结构设计,下列说法正确的是(15)。
UML类图中的关联相当于ER模型中的______。
下图所示的扩展E—R图中,属性“电话”属于(62)________________,在逻辑结构设计中,该图中的(63)________________属性将不会被转换到关系模式中。
在下列机制中,(23)________________是指过程调用和响应调用所需执行的代码在运行时加以结合;而(24)________________是过程调用和响应调用所需执行的代码在编译时加以结合。
随机试题
企业生产经营活动的原始记录,是进行成本预测、编制成本计划、进行成本核算的依据。【】
1999世界卫生组织和国际高血压学会制订和修改的新的正常人的血压标准为
A.化疗后B.骨髓病性贫血C.酶缺陷D.缺铁性贫血E.地中海贫血RDW增加,MCV降低的是
患儿,病程较长,反复不愈,小便不畅,神疲倦怠,气短懒言,舌质淡,苔白,脉沉细无力,指纹淡红。辨证用方是
探测器至空调送风口最近边的水平距离,不应小于()m;至多孔送风顶棚孔口的水平距离,不应小于()m。
税务机关对公民作出2000元以上罚款或者对法人或者其他组织作出1万元以上罚款的行政处罚之前,应当向当事人送达《税务行政处罚事项告知书》,纳税人应当在《税务行政处罚事项告知书》送达后()日内向税务机关书面提出听证;逾期不提出的,视为放弃听证权利
下列各项股利支付形式中,不会改变企业资本结构的是()。
A公司是一家商业企业,主要从事商品批发业务,有关资料如下:资料1:该公司2014年、2015年(基期)的财务报表数据如下:资料2:公司预计2016年销售收入增长率会降低为6%,公司经营营运资本占销售收入的比不变,净投资资本中净负债比重保持不变,税后利
位于某市区的一家房地产开发公司,2008年度开发建设办公楼一栋,12月与某生产性外商投资企业签订一份购销合同,将办公楼销售给该生产性外商投资企业,销售金额共计1200万元。合同载明,外商投资企业向房地产开发公司支付货币资金900万元,另将一块未作任何开发的
Iamafraidthatyouhavetoalteryour______viewsinlightofthetragicnewsthathasjustarrived.
最新回复
(
0
)