首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
admin
2009-02-01
82
问题
阅读以下说明和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://www.kaotiyun.com/show/hmWZ777K
本试题收录于:
嵌入式系统设计师下午应用技术考试题库软考中级分类
0
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
使用软件开发工具有助于提高软件的开发、维护和管理的效率。集成型软件开发环境通常由工具集和环境集成机制组成。这种环境应具有(98)。环境集成机制主要有数据集成机制、控制集成机制和界面集成机制。
关系模式R属性集为{A,B,C},函数依赖集F={AB→C,AC→B,B→C},则R属于(6)。
以下SQL99语句描述的是(26)。 CREATETYPE Employee( Name String, ssn integer); CREATE TYPE Manager UNDER Employee( D
在数据库方式下,信息处理中占据中心位置的是______。
在数据库系统的组织结构中,下列( )映射把数据库与概念数据库联系了起来。
在安全通信中,S将所发送的信息使用(12)________________进行数字签名,T收到该消息后可利用(13)________________验证该消息的真实性。
以下对触发器的叙述中,不正确的是(60)________________。
以下关于单链表存储结构特征的叙述中,不正确的是()。
阅读下列说明和表,回答问题,将解答填入答题纸的对应栏内。【说明】防火墙类似于我国古代的护城河,可以阻挡敌人的进攻。在网络安全中,防火墙主要用于逻辑隔离外部网络与受保护的内部网络。防火墙通过使用各种安全规则来实现网络的安全策略。防火墙的
随机试题
A.肠结核B.大肠癌C.克罗恩病D.溃疡性结肠炎病变好发于直肠,国内占半数以上
男性,22岁,北方人士。反复鼻血并渐进性鼻塞2年。该病男女发病率
A、正向间接凝集反应B、反向间接凝集反应C、玻片凝集法D、试管凝集法E、间接凝集抑制反应临床中ABO血型鉴定最常采用的方法为
A.慢性缺氧所致肺血管重建B.缺氧性肺血管收缩C.支气管肺感染和阻塞D.血液黏稠度增加E.气道炎症肺心病肺动脉高压形成的功能因素是
全面造价管理是指有效地利用专业知识和技术,对()进行筹划和控制。
大体积混凝土的浇筑方案主要有()等方式。
计算题:根据所给材料计算后回答问题。(须列出算式;计算过程中的小数均保留实际位数,最后计算结果有小数的,小数保留2位。)某图书开本为1000毫米×1400毫米,1/32。该书有正文198面,主书名页2面,前言2面,目录3面,后记1面,均用定量为8
提倡自然主义教育,认为教育的任务应该使儿童“归于自然”的教育家是()
已知二次型f(x1,x2,x3)=4x22-3x32+4x1x2-4x1x3+8x2x3.写出二次型f的矩阵表达式;
Everyoneseemstobeinfavorofprogress.But"progress"isafunnyword.Itdoesn’tnecessarilymeanthatsomethinghasbecome
最新回复
(
0
)