马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
在实际的程序设计环境中,我们可能使用多个源文件,这次文字被分别编译,然后链接成一个可运行的目标代码。这种方法非常有用,因为一个文件中的任何修改,不会影响其他文件,这样就省去了重新编译整个程序的必要。 只要把变量声明为外部变量,多个源文件就可以共享它。被两个或多个文件共享的变量称为全局变量,因此必须在某个文件中进行相应的声明,然后再其他文件中显式地用extern进行定义。 file1.c main() { externint m; inti; ...... ...... } function1() { intj; ...... ...... }
file2 int m function2() { inti; ...... ...... } function3() { intcount; ...... ...... } 在file的main函数中可以引用变量m,该变量在file2中声明为全局的。记住,函数function1不能访问变量m。但是,如果extern int m语句是放在main函数之前,那么function1和main函数就都可以引用m了。如果在file1的每个函数中都使用了extern int m语句,那么每个函数就都可以访问变量m。 extern说明符告诉编译器,后面的变量类型和名称已经在其他地方进行了声明,不用为它们创造存储空间了。由链接器去解决问题。需要重点注意的是,多文件全局变量只能是在某一个文件中不带extern说明符进行声明的。如果在两个不同文件中把一个变量说明为全局变量,那么链接器将产生一个冲突,不知道该使用哪个变量,因此将发出一个警告。 file1.c int m main() { {inti; ...... } function1() { intj; ...... } file2.c externint m; function2() inti; ...... } function3() { intcount; ...... } 当一个函数定义在某个文件中,被另一个文件访问,那么在第二个文本中必须包含该函数的声明。该声明表明该函数时一个外部函数,其定义出现在其他的地方。我们通常把这种声明放在文件的开始处,位于所有函数之前。尽管所有函数都是假定为外部的,但良好的习惯是在函数声明时显式地使用extern说明符。 凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com。 |