作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的程序,例如:
int velocity=0;
#include "extra.h"
int main()
{
extra();
return 0;
}
其中 extra.h
是:
void extra(){
velocity += 1;
}
但是当我编译这个时,我收到错误:
extra.h:5:5: error: 'velocity' was not declared in this scope
显然,我在extra.h
中的代码无法“看到”main.c中的变量,但这是为什么呢?我该如何解决这个问题?
最佳答案
您可以将以下声明添加到extra.h
:
extern int velocity;
<小时/>
但是,extra()
不应该首先在 extra.h
中定义。如果同一个二进制文件中的多个 .c
文件包含 extra.h
,这将导致问题。以下是您应该拥有的:
extra.h
:
void extra();
extra.c
:
#include "extra.h"
static int velocity = 0;
void extra() {
velocity += 1;
}
main.c
:
#include "extra.h"
int main()
{
extra();
return 0;
}
关于c - 如何在其他文件中包含的 C 函数中使用全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39578545/
我是一名优秀的程序员,十分优秀!