用哪个声明可以让一个函数在2个源文件内使用
时间: 2024-10-16 13:12:02 浏览: 9
为了在一个项目内的多个源文件中共享一个函数,你可以使用外部(extern)声明来告诉编译器这个函数的存在,然后在其中一个源文件中提供实际的函数实现。这样做的目的是实现函数的"链接时间可见性",而不是让函数的定义出现在每个文件里。
以下是一个例子:
假设我们有两个源文件,一个是 `header_file.h`,另一个是 `implementation_file.cpp`:
**header_file.h**
```c++
#ifndef HEADER_FILE_H
#define HEADER_FILE_H
// 外部声明,表示函数将在其他地方定义
extern void someFunction();
#endif // HEADER_FILE_H
```
**implementation_file.cpp**
```cpp
#include "header_file.h"
// 实现函数
void someFunction() {
// ...
}
```
然后,在 `main.cpp` 或其他需要使用 `someFunction` 的源文件中,只需包含 `header_file.h` 即可:
```cpp
#include "header_file.h"
int main() {
someFunction(); // 这里可以正常调用函数
return 0;
}
```
这样,`someFunction` 就可以在整个项目中被引用,而其定义只存在于 `implementation_file.cpp` 中,减少了重复代码并保持了代码结构清晰。
阅读全文