C/C++编程笔记:C语言全局变量,实现多个c文件中公用的方法

C/C++编程笔记:C语言全局变量,实现多个c文件中公用的方法

陆欣溢 2024-11-19 百科资讯 924 次浏览 0个评论

C/C++编程笔记:C语言全局变量,实现多个c文件中公用的方法

内容:

在C语言编程中,全局变量是一种非常重要的概念。当需要在多个源文件中共享数据时,全局变量可以提供一种方便的方法。然而,如何正确地在多个c文件中使用全局变量,是一个需要特别注意的问题。

以下是一个示例,假设你有一个名为project的文件夹,其中包含了main.ccommon.ccommon.h三个文件。你希望在main.ccommon.c中共享一个字符型变量key

在尝试时,你可能会在common.h中直接声明unsigned char key,然后将其包含到main.ccommon.c中。然而,这会导致编译错误,因为编译器会认为key被重复定义了。

正确的解决方案是使用extern关键字。具体来说,你应该在一个c文件中定义key,然后在另一个要使用key的c文件中声明extern unsigned char key。这样,编译器就会知道key是在其他文件中定义的。

下面是具体的实现:

  1. main.c文件中定义key
#include "common.h"
unsigned char key;
  1. common.c文件中声明extern key
#include "common.h"
extern unsigned char key;

注意,这里涉及到的是“变量定义”和“变量声明”的区别。变量定义使用“数据类型+变量名称”的形式,编译器需要给它分配内存单元;而变量声明使用“extern 变量类型+变量名称”的形式,是告诉编译器这个变量将在其他文件中定义,这里只是在外部使用它。编译器就不给它分配内存空间,而等到真正遇到变量定义的时候再给它分配内存空间。

对于自定义结构体类型,为了避免编译器不识别,我们通常会将其定义放在.h文件中,并在其他文件中通过extern声明来引用。

最后,如果你想引用一个已经定义过的全局变量,可以使用extern关键字。如果全局变量定义在多个.c文件中,你可以在不同的C文件中以static形式来声明同名全局变量,前提是其中只能有一个C文件中对此变量赋初值,此时连接不会出错。

如果你在学习C/C++编程时遇到任何问题,或者想要获取更多的编程学习资源,欢迎关注我们的C语言C++零基础编程学习圈,我们期待与你一起交流成长,成为更优秀的程序员!

转载请注明来自甘肃陆港通物流科技有限公司,本文标题:《C/C++编程笔记:C语言全局变量,实现多个c文件中公用的方法 》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!
Top