早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

在C语言程序中,常在某些变量的说明前加extem,如本题在变量说明中的第一条加extem int sys_stams;

题目

在C语言程序中,常在某些变量的说明前加extem,如本题在变量说明中的第一条加extem int sys_stams;请说明加extem与不加extem的区别,在进行编译时会有什么样的不同处理?

参考答案
正确答案:
解析:本题考查对C语言的变量声明类型的理解。在变量声明前加extem,表明为引用一个外部变量,是外部变量引用声明,不管该变量在程序的什么位置。如果在一个文件中要引用在另一文件中定义的全局变量,就应在变量声明前加extem。
如果在一个全局变量前不加extem,表明该变量是在本文件中定义的一个全局变量,同时可被其他文件作为外部变量引用。
在不加extem外部变量的定义处,编译时要给变量分配地址空间。在加extem外部变量引用声明处,不给变量分配地址。
值得注意的是,如果在全局变量的声明前都加extem,在这种情况下,编译连接时会确定一处分配一次地址空间。