C++ 中的 Typedef 函数指针

Typedef function pointer in C++

我正在尝试理解 C++ 中的代码 header。

#define GET_VAL(fn) void fn(int val)
typedef GET_VAL ((*get_val));
struct myStruct
{ 
    get_val getValue;
};

在源文件中,调用了函数getValue。

getValue(2);

有人有什么想法吗?

GET_VAL 宏替换您传递给它的标记。这个:

typedef GET_VAL ((*get_val));

扩展为:

typedef void (*get_val) (int val);

这是一个指向函数的指针,它没有接受 int 和 returns。这种类型的函数指针在 myStruct 中声明(大概是在某个时候定义的)并像常规函数一样调用。