凌阳教育专注嵌入式教育14年,良心教育,有担当,有诚信,值得信赖的教育品牌,欢迎访问官网http://www.sunplusedu.com

多文件程序

上一篇 / 下一篇  2016-04-28 15:17:59

在实际的程序设计环境中,我们可能使用多个源文件,这次文字被分别编译,然后链接成一个可运行的目标代码。这种方法非常有用,因为一个文件中的任何修改,不会影响其他文件,这样就省去了重新编译整个程序的必要。

只要把变量声明为外部变量,多个源文件就可以共享它。被两个或多个文件共享的变量称为全局变量,因此必须在某个文件中进行相应的声明,然后再其他文件中显式地用extern进行定义。

file1.c                                              

main()

{

       extern int m;

       int i;

       ......

       ......

}

function1()

{

       int j;

       ......

       ......

}

 

file2

int m

function2()

{

       int i;

       ......

       ......

}

function3()

{

       int count;

       ......

       ......

}

filemain函数中可以引用变量m,该变量在file2中声明为全局的。记住,函数function1不能访问变量m。但是,如果extern int m语句是放在main函数之前,那么function1main函数就都可以引用m了。如果在file1的每个函数中都使用了extern int m语句,那么每个函数就都可以访问变量m

extern说明符告诉编译器,后面的变量类型和名称已经在其他地方进行了声明,不用为它们创造存储空间了。由链接器去解决问题。需要重点注意的是,多文件全局变量只能是在某一个文件中不带extern说明符进行声明的。如果在两个不同文件中把一个变量说明为全局变量,那么链接器将产生一个冲突,不知道该使用哪个变量,因此将发出一个警告。

file1.c

int m

main()

{

       {int i;

       ......

}

function1()

{

       int j;

       ......

}

file2.c                                              

       extern int m;

function2()

       int i;

       ......

}

function3()

{

       int count;

       ......

}

当一个函数定义在某个文件中,被另一个文件访问,那么在第二个文本中必须包含该函数的声明。该声明表明该函数时一个外部函数,其定义出现在其他的地方。我们通常把这种声明放在文件的开始处,位于所有函数之前。尽管所有函数都是假定为外部的,但良好的习惯是在函数声明时显式地使用extern说明符。

凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com


TAG: 程序

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar
博评网