c++ - 使用函数声明初始化函数指针 - 可能吗?

标签 c++ pointers initialization declaration

C++中可以用函数声明来初始化函数指针吗?我的意思是,像这样:

void (*pointer)(void) = &( void function(void) );

或者这个:

void (*pointer)(void) = void function(void);

最佳答案

这几乎是可能的,你只需颠倒顺序:先声明函数,然后用其地址初始化指针:

void function(), (*pointer)() = &function;

[Live example]

但是,我认为这段代码丑陋、不可读,并且永远不会建议实际使用它。所以,我的答案是:“这是可能的,但永远不应该这样做。” (我可以想象在某些涉及宏的情况下这是可以原谅的,但仅此而已)。

关于c++ - 使用函数声明初始化函数指针 - 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57111876/

相关文章:

c++ - 比较模板类中的枚举 - 它安全吗?

c++ - 插入 map 时出现段错误

c++ - 类的指针成员必须指向堆分配的数据?

c++ - qt中的占位符

c - 通过传递给函数的指针修改结构体数组

c++ - 通过函数返回类指针

Android:AudioFlinger 无法创建录音轨道,状态:-1

c++ - 以下代码是否可能存在内存泄漏?

java - 初始化 block 上的注释????静态与否

c++ - 为什么保守函数允许未定义的行为?