C++ 全局变量 .h
时间: 2023-12-21 21:06:43 浏览: 43
在 C++ 中,可以在头文件中定义全局变量。在头文件中定义的全局变量可以在多个源文件中使用,但是需要注意避免重复定义。为了避免重复定义,可以使用 extern 关键字声明全局变量,然后在一个源文件中定义该全局变量。
例如,在头文件 global.h 中定义一个全局变量:
```c++
// global.h
#ifndef GLOBAL_H
#define GLOBAL_H
extern int g_global_var;
#endif // GLOBAL_H
```
然后在一个源文件 global.cpp 中定义该全局变量:
```c++
// global.cpp
#include "global.h"
int g_global_var = 0;
```
这样,在其他源文件中包含 global.h 头文件后,就可以使用 g_global_var 变量了。
相关问题
devc++定义全局变量
在Dev-C++中定义全局变量的方法与其他C++编译器相同。可以在头文件中使用extern关键字声明全局变量,然后在源文件中定义全局变量。例如,在头文件globalVal.h中声明全局变量num和r:
```
extern int num;
extern int r;
```
然后在源文件fun1.cpp中定义全局变量num和r:
```
#include <iostream>
#include "globalVal.h"
int r = 10;
int num = 100;
void fun1() {
std::cout << "r:" << r << std::endl;
}
```
在其他源文件中,可以通过包含globalVal.h头文件来使用全局变量num和r。请注意,如果在多个源文件中定义了相同的全局变量,则会出现重复定义的错误。因此,最好将全局变量的定义放在一个源文件中,并在其他源文件中使用extern关键字声明它们。
c调用c++类全局变量
为了在C中调用C++类的全局变量,需要使用extern "C"来声明这个变量。这样可以防止C++编译器对变量名进行修饰,从而使C编译器可以正确地找到这个变量。下面是一个示例代码:
test.h文件:
```cpp
#ifdef __cplusplus
extern "C" {
#endif
extern int g_num;
#ifdef __cplusplus
}
#endif
```
test.cpp文件:
```cpp
#include "test.h"
int g_num = 0;
```
test.c文件:
```c
#include "test.h"
#include <stdio.h>
int main() {
printf("%d\n", g_num);
return 0;
}
```
在这个示例中,test.h文件中使用extern "C"来声明了g_num变量,test.cpp文件中定义了g_num变量,test.c文件中调用了g_num变量并输出了它的值。