我有以下情况:
void function(params)
{
#ifdef _MULTIPLAYER
if (isConnected)
{
if (isClient)
{
requestFunctionRemotely(params)
return;
}
else if (isServer)
{
call realFunction(params) remotely on client;
}
}
#endif
realFunction(params);
}
realFunction(params)
{
...
}
在这种情况下,我可以使用单人游戏实例或多人游戏来构建我的项目。
之所以使用这种方法,是因为function(params)
在我的代码周围都被调用,所以通过这种方式,我只是附加到可能的最低级别而不会出现问题。
我不得不拆分function
andrealFunction
因为客户端收到的远程响应必须通过执行realFunction
以避免循环(我可以更改函数原型以添加一个标志,但我会破坏很多代码)。
我担心禁用_MULTIPLAYER
定义时的性能。我有很多,function(params)
我会打电话给他们上千次。我将不得不对所有人使用这种方法。g++ 会在找到时优化掉双重调用
function(params) {
realFunction(params);
}
到
function(params) {
// body of realFunction
}
并且有办法在每一种类似的情况下强制它吗?
只是作为一个提示:我目前使用-O2
标志