全局变量怎么分头文件和源文件存放
时间: 2024-02-15 16:06:17 浏览: 16
全局变量的定义通常放在头文件中,而且必须使用extern关键字声明,如下所示:
```c
// global.h
extern int global_var;
```
而变量的实际定义则放在源文件中,如下所示:
```c
// global.c
#include "global.h"
int global_var = 0;
```
这样,其他文件包含global.h头文件后就可以使用global_var全局变量了。如果在多个源文件中使用同一个全局变量,需要分别在这些源文件中包含global.h头文件即可。
相关问题
c++重载运算符怎么分头文件和源文件写
当你在C++中重载运算符并将其分为头文件和源文件时,通常的做法是将函数声明放在头文件中,并将函数定义放在源文件中。
例如,如果你要重载运算符+,你可以这样做:
在头文件中,声明该函数:
```c++
// operator+.h
#ifndef OPERATOR_PLUS_H
#define OPERATOR_PLUS_H
#include "myclass.h"
MyClass operator+(const MyClass& a, const MyClass& b);
#endif
```
在源文件中,定义该函数:
```c++
// operator+.cpp
#include "operator+.h"
MyClass operator+(const MyClass& a, const MyClass& b)
{
// 实现该函数
}
```
需要注意的是,在头文件中,需要使用 `#ifndef` 和 `#define` 宏来避免重复包含头文件的问题。
当你需要使用该运算符时,只需要在你的程序中包含头文件即可:
```c++
#include "operator+.h"
// 使用运算符
MyClass c = a + b;
```
void get_time() { cout << setfill('0') << setw(3) << hour << ':' << setfill('0') << setw(2) << minute; }如何将这个全局函数分头文件和源文件存放
可以将函数声明放在一个头文件中,函数定义放在一个源文件中。具体操作如下:
1. 创建一个名为`time.h`的头文件,将`get_time()`函数的声明放在头文件中:
```c++
// time.h
#ifndef TIME_H
#define TIME_H
void get_time();
#endif // TIME_H
```
2. 创建一个名为`time.cpp`的源文件,将`get_time()`函数的定义放在源文件中:
```c++
// time.cpp
#include <iostream>
#include <iomanip>
#include "time.h"
using namespace std;
extern int hour;
extern int minute;
void get_time() {
cout << setfill('0') << setw(3) << hour << ':' << setfill('0') << setw(2) << minute;
}
```
3. 在需要使用`get_time()`函数的源文件中包含`time.h`头文件即可使用该函数:
```c++
#include "time.h"
int main() {
get_time();
return 0;
}
```
需要注意的是,在`time.cpp`中,由于`hour`和`minute`是在其他文件中定义的全局变量,所以需要使用`extern`关键字进行声明。在`main`函数中,需要包含`time.h`头文件才能调用`get_time()`函数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)