想要函数第一次运行的时候初始化,比如说随机数种子,额外地init方法会使得没必要的东西一起初始化,毕竟我总不能调用114514个init吧

举个栗子,方法ww和初始化方法_ww,常见的应该是:

1
2
3
4
5
6
7
8
int ww(){
static bool init = true;
if (init){
init = false;
//初始化
}
//xxx
}

但是每次调用都有if不怎么优雅,毕竟某些函数可是要一秒调用上万次的

这个时候就体现出函数指针的优势了

1
2
3
4
5
6
7
8
9
10
11
12
int __ww();
int _ww();
int (*ww)() = __ww;


int _ww(){

}
int __ww(){ //初始化
ww = __ww;
ww();
}

虽然性能提升基本上没有,但是看上去更优雅了