在一个文件函数参数中有函数指针,在另外一个文件调用该函数指针
时间: 2024-09-23 18:02:47 浏览: 52
在一个程序中,如果在某个文件中定义了一个函数,并将其地址存储在一个函数指针变量里,那么在另一个文件中,可以通过这个函数指针来动态地调用该函数。下面是一个简单的例子:
假设我们有两个文件:`function_def.h` 和 `main.cpp`。
**function_def.h**
```c++
// 定义函数原型
extern void printHello(const char* message);
```
在这个文件中,我们声明了一个名为`printHello`的函数,它接受一个字符串作为参数。由于是`extern`修饰的,这意味着函数的定义会在其他地方给出。
**function_def.cpp**
```cpp
#include "function_def.h"
// 实现函数
void printHello(const char* message) {
std::cout << "Hello, " << message << std::endl;
}
```
这里我们实现了`printHello`函数。
**main.cpp**
```cpp
#include <iostream>
#include "function_def.h"
// 获取函数地址并赋值给函数指针
int main() {
void (*funcPtr)(const char*) = &printHello; // 函数指针声明
// 调用函数
funcPtr("World"); // 通过函数指针调用printHello函数
return 0;
}
```
在`main.cpp`中,我们创建了指向`printHello`函数的函数指针`funcPtr`,然后通过这个指针调用了函数,传递了字符串"World"作为参数。
阅读全文