题目内容 (请给出正确答案)
[主观题]

带ExtErn的变量说明是变量声明,不是变量定义。()

带ExtErn的变量说明是变量声明,不是变量定义。()

提问人:网友18***192 发布时间:2022-01-06
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
更多“带ExtErn的变量说明是变量声明,不是变量定义。()”相关的问题
第1题
下列哪一种存储类别用于变量声明而不是变量定义中 。

A.register

B.auto

C.extern

D.static

点击查看答案
第2题
下列关于外部变量的说法,正确的是 。

A.全局外部变量可以用于多个模块,extern只是声明而不是重新定义

B.外部变量是在函数外定义的变量,其作用域是整个程序

C.全局外部变量可以用于多个模块,但需用extern重新在各模块中再定义一次

D.静态外部变量只能作用于本模块,因此它没有什么实用价值

点击查看答案
第3题
阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。【说明】 在嵌入式操作系统设备管

阅读以下说明和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)

{

/*局部变量声明,略*/

/*驱动程序代码,略*/

请用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);

}

点击查看答案
第4题
下列说法不正确的是()

A.全局静态变量和局部静态变量,作用域和寿命相同

B.extern不是存储类型,它只是一般全局变量的引用说明

C.全局变量和静态变量,没有初始化,初值为0

D.静态变量是全局寿命,作用域由变量位置来决定

点击查看答案
第5题
‌下列说法不正确的是()。

A.静态量是全局寿命,作用域由变量位置来决定

B.全局静态变量和局部静态变量,作用域和寿命相同

C.全局变量和静态变量,没有初始化,初值为0

D.extern不是存储类型,它只是一般全局变量的引用说明

点击查看答案
第6题
定义外部变量时,不用存储类说明符extern,而是在声明外部变量时用extern()
点击查看答案
第7题
以下哪个声明符是静态变量声明符()

A.auto

B.static

C.extern

D.register

点击查看答案
第8题

凡是函数中声明外部变量,一般使用的关键字为()。

A.auto

B.static

C.extern

D.register

点击查看答案
第9题
在当前文件中使用其它文件里定义的全局变量时,该全局变量须在当前文件中声明为外部变量,声明外部变量的关键字为extern
点击查看答案
第10题
某模块提供给其他模块调用的外部函数及变量,需在.h文件中冠以extern关键字声明。
点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信