首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请用C语言的函数指针变量,对manage_device函数进行改造,完成下面C语言代码中的(1)、(2)、(3)和(4)处的变量说明或语句,将解答填入对应栏内。 【C语言代码】 /*变量与类型说明*/ #include "stdio.h"
请用C语言的函数指针变量,对manage_device函数进行改造,完成下面C语言代码中的(1)、(2)、(3)和(4)处的变量说明或语句,将解答填入对应栏内。 【C语言代码】 /*变量与类型说明*/ #include "stdio.h"
admin
2009-02-01
67
问题
请用C语言的函数指针变量,对manage_device函数进行改造,完成下面C语言代码中的(1)、(2)、(3)和(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, iht arg2);
extern int Dev_drv3(int arg1, int arg2);
extern int Dev_drv4(int arg1, int arg2);
#define NOERROR 0
typedef struct {
int _fd;
(1) 函数指针变量说明;/* 变量名用process */
} TYP_DEV_TAB;
TYP_DEV_TAB dev_tab[50]= {{101, Dev_drv1},{99, Dev_drv2},
{80, Dev_drv3},{120, Dev_dry4},};
/* 程序 */
void manage_device(int devid, int arg1, int arg2)
{ iht place ;
int ret;
(2) 函数指针变量说明;/*局部变量,变量名用ProcAction */
for(place=0 ; place<50 ; place++) {
if(dev_tab [place]._fd == devid) {
(3) 语句1;/* 变量名胜ProcAction, 得到具体函数的入口地址 */
break;
}
}
if(place>=50)
printf("NO DEVICE fd = %d\n",devid);
(4) 语句2;
if(ret!=NOERROR)
printf("DEVICE %d error!", devid);
}
在C语言程序中,常在某些变量的说明前加extem,如本题在变量说明中的第一条加extem int sys_stams;请说明加extem与不加extem的区别,在进行编译时会有什么样的不同处理?
选项
答案
[*]
解析
本题考查对C语言的变量声明类型的理解。在变量声明前加extem,表明为引用一个外部变量,是外部变量引用声明,不管该变量在程序的什么位置。如果在一个文件中要引用在另一文件中定义的全局变量,就应在变量声明前加extem。
如果在一个全局变量前不加extem,表明该变量是在本文件中定义的一个全局变量,同时可被其他文件作为外部变量引用。
在不加extem外部变量的定义处,编译时要给变量分配地址空间。在加extem外部变量引用声明处,不给变量分配地址。
值得注意的是,如果在全局变量的声明前都加extem,在这种情况下,编译连接时会确定一处分配一次地址空间。
转载请注明原文地址:https://kaotiyun.com/show/mmWZ777K
本试题收录于:
嵌入式系统设计师下午应用技术考试题库软考中级分类
0
嵌入式系统设计师下午应用技术考试
软考中级
相关试题推荐
DBS的体系结构,按照ANSI/SPARC报告分为(1);在DBS中,DBMS的首要目标是提高(2);为了解决关系数据库的设计问题,提出和发展了(3);对于DBS,负责定义DB结构以及安全授权等工作的是(4)。
在进行数据查询时,用户编写的应用程序只对全局关系进行操作,而不必考虑数据的逻辑分片,这需要分布式数据库至少要提供______。
UML类图中的关联相当于ER模型中的______。
某数据库应用系统在运行过程中,发现随着数据量的不断增加,有部分查询业务和数据更新业务执行耗时越来越长。经分析,这些业务都与表Tablel有关。假设Tablel有30多个字段,分别为(Key,A2,A2,…Am,B1,B2,…Bn)。执行频度较高的查询业务都
假设铁路自动售票系统有n个售票终端,该系统为每个售票终端创建一个进程Pj(i=1,2,…,n)管理车票销售过程。假设Tjj=1,2,…,m)单元存放某日某趟车的车票剩余票数,Temp为Pi进程的临时工作单元,x为某用户的购票张数。Pi进程的工作流程如下图所
计算机运行过程中,遇到突发事件,要求CPU暂时停止正在运行的程序,转去为突发事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为(1)________________,其处理过程中保存现场的目的是(2)________________。
以下关于单链表存储结构特征的叙述中,不正确的是()。
通用的高级程序设计语言一般都会提供描述数据、运算、控制和数据传输的语言成分,其中,控制包括顺序、()和循环结构。
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】在Linux系统中,用户账号是用户的身份标志,它由用户名和用户口令组成。Linux系统的用户名文件通常包含如下形式的内容:root:x:0:0:root:/roo
数字签名是对以数字形式存储的消息进行某种处理,产生一种类似于传统手书签名功效的信息处理过程。一个数字签名体制通常包括两个部分:__________________。
随机试题
下列关于红外激光打印机叙述不正确的是
A.洛美沙星B.马来酸氯苯那敏C.沙丁胺醇D.阿司匹林E.烟酸容易引起皮肤潮红、瘙痒的药物是
水泥混凝土路面断板处理时,常见的裂缝处理方法有()。
企业对亏损合同进行会计处理,需要遵循的原则有()。
下列关于血液中胰高血糖素和胰岛素的浓度与人血浆中葡萄糖浓度的说法中,正确的是()。
关于气体在血液中的运输的叙述,下列哪项是错误的?()
下列所给图形的左侧是一完整的立方体,中间和右侧再加上下列选项中的()就可以构成左侧的完整的立方体。
【亚历山大东征】清华大学2014年历史学基础真题
Asummaryofthephysicalandchemicalnatureoflifemustbegin,notontheEarth,butintheSun,infact,attheSun’sveryc
A、CreatingopportunitiestolearnItalian,German,orJapanese.B、Gettingtoknowwheretoeatauthenticforeignfood.C、Showing
最新回复
(
0
)