首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。 【说明】 在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4
admin
2009-02-01
76
问题
阅读以下说明和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
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是______。
中国采用的电视的制式是(1),采用(2)彩色空间,它的帧频是(3),电视数字化的标准是(4)。
设关系模式R(A,B,C,D),F是R上成立的FD集,F={AB→C,D→B},ρ={ACD,BD}是R上的一个分解,那么分解ρ______。
在UNIX操作系统中,若用户键入的命令参数的个数为1时,执行cat $1命令;若用户键入的命令参数的个数为2时,执行cat>>$2<$1命令。请将下面所示的Shell程序的空缺部分补齐。 case(1)in 1)cat $1;;
嵌入式SQL实现时,采用预处理方式是______。
为防止非法用户进入数据库应用系统,应采用的安全措施是(5)。
以下关于单链表存储结构特征的叙述中,不正确的是()。
以下关于软件测试的叙述中,正确的是()。
__________________是一种通过对信息进行均衡、全面的防护,提高整个系统最低安全性能的原则。
分组密码常用的工作模式包括:电码本模式(ECB模式)、密码反馈模式(CFB模式)、密码分组链接模式(CBC模式)、输出反馈模式(OFB模式)。下图描述的是(53)________________模式(图中Pi表示明文分组,Ci表示密文分组)。
随机试题
冷却液大循环:
超硬铝7A04可用作承力构件和高载荷零件,如飞机上的大梁等。
定性决策
患儿10个月,因高热、呕吐3天,惊厥发作2次入院。查体:前囟隆起,颈抵抗阳性。脑脊液外观微浑,白细胞数1300×106/L,分叶70%,蛋白(++),糖0.95mmol/L。最可能的诊断是:()
有关X射线造影录像(VF)错误的是
颁发《执业药师资格制度暂行规定》的目是
确定多式联运的最重要的特征是()。
英国广播公司用“史无前例”这个词强调舰载机起降对于中国的意义。法国媒体称,这真令人震惊,歼-15货真价实地完成了在“辽宁舰”上的起降。德国媒体称,中国首艘航母就像中国的一座“浮动军事大学”,很多技术都是中国自己研发的。军事专家称,舰载机成功起降标志着___
派生词
TheHundredYears’Warwasaconflictbetween
最新回复
(
0
)