首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
admin
2009-02-01
52
问题
阅读以下说明和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
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
“一旦事务成功提交,其对数据库的更新操作将永久有效,即使数据库发生故障”,这一性质是指事务的(12)。
一个事务独立执行的结果将保证数据库的( )。
超文本是一种信息管理技术,其组织形式以______作为基本单位。
设关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→C,D→B},ρ={ACD,BD}是R上的一个分解,那么分解ρ______。
在进行数据查询时,用户编写的应用程序只对全局关系进行操作,而不必考虑数据的逻辑分片,这需要分布式数据库至少要提供______。
堆是一种数据结构,(2)是堆。
E-R图中的实体集A、B之间为1:*联系,转换为关系模型时,在B实体集中增加A实体集的标识符作外码;而在面向对象数据模型中,(69)________________。
DBMS提供的DDL功能不包含(35)________________。
对有n个结点、e条边且采用数组表示法(即邻接矩阵存储)的无向图进行深度优先遍历,时间复杂度为(10)________________。
在设计关系模式时,有时为了提高数据操作的性能,会故意增加冗余数据,使得关系模式不满足3NF或BCNF,这种方法称之为反规范化,下列不属于反规范化手段的是()。
随机试题
在设备监理合同中,()是编制设备监理规划的基本界限。
产生基本呼吸节律性的部位是
上消化道内镜检查术的常见并发症有
下列需要进行治疗药物监测的是
某女,21岁。平素饭量大,今日突发牙龈红肿疼痛,为
应当对住宅的结构、性能和各部位(部件)的类型、性能、标准等作出说明,并提出使用注意事项的是()。
下列措施属于健全收入初次分配调节机制的是()。
京剧:芭蕾()。
有如图3-4所示的带权有向图G,试回答以下问题。给出从顶点1出发的深度优先遍历序列和广度优先遍历序列。
You______me,becauseIdidn’tsaythat.
最新回复
(
0
)