imb*_*aer 5 c variables pointers global
我目前正在重写我的一个程序.它具有强大的递归功能,解决了peg-solitaire:
int solve(int draw) {
if (finished())
return true;
//loop over every possible move (about 76 long values)
//do a move (access the board, which is a long value)
if (solve(draw + 1))
return true;
return false;
}
Run Code Online (Sandbox Code Playgroud)
所以我想知道使用这样的解决方案是否更快:
solve(int draw, long **moves, long *board) {}
Run Code Online (Sandbox Code Playgroud)
目前,移动和董事会都是全局变量.
当然我要测试它,但如果有人告诉我这个尝试不会有效,我会节省一些时间:).
最好的祝福
它可能效率不高,但唯一可以确定的方法是分析您的代码.如果你的大部分执行时间用于实际的游戏逻辑,那么在堆栈上放置一些参数的微小开销应该可以忽略不计.
但是,从设计的角度来看,避免全局变量要好得多.它允许您的代码无状态,因此可能具有重入性和线程安全性.但是,这可能与您的申请相关,也可能不相关.