首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在同一个头文件中声明、初始化和使用全局变量

在同一个头文件中声明、初始化和使用全局变量
EN

Stack Overflow用户
提问于 2011-06-30 02:31:28
回答 2查看 16.8K关注 0票数 4

实际上,我正在尝试使用一个在头文件(比如x.h)中初始化的变量,并希望在同一个头文件的内联代码中使用相同的变量。相同的变量在另一个文件(比如y.c)中被修改。我该怎么做呢?我想知道做这件事的好方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-30 02:33:50

您可以在头文件中将全局变量声明为extern,然后在代码模块(即".c“文件)中定义它。这样你就不会因为链接器抛出多个定义错误而结束。

例如,在您的头文件中,一个名为my_global_var的全局可用的int将在一个.h文件中包含一个声明,如下所示:

代码语言:javascript
运行
复制
extern int my_global_var;

然后,在一个单独的.c文件中,您可以定义和初始化它:

代码语言:javascript
运行
复制
int my_global_var = 0;

现在,您可以在包含适当头文件的任何其他代码模块中使用my_global_var,并且可以链接到包含全局变量定义的适当.c文件。

票数 6
EN

Stack Overflow用户

发布于 2011-06-30 02:33:30

使用extern保留字。

永远不要在'.h‘文件中创建变量,这是一种会导致错误的糟糕做法。取而代之的是,在需要使用它们的地方将它们声明为extern,并仅在单个“.c”文件中声明变量本身,在该文件中,变量将被实例化,并从使用它的所有其他位置链接到该文件。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6525496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档