我对C或C ++的经验很少,所以我不理解该语言中的各种快捷方式和常见任务。
我正在查看与此类似的游戏代码:
bool
update_frame (void)
{
// Various bits of code
return TRUE;
}
这是游戏的主要循环。我认为它类似于:
while (true) {
// do stuff
}
我将在C#或Java中使用它。这是在发生什么事吗?
答案 0 :(得分:1)
此代码可能使用游戏引擎。引擎每秒会调用update_frame
30/60 / X次。但是,在它们之间,它可能会执行其他任务。
它可能是一个while(true)循环。
答案 1 :(得分:0)
你提到的函数没有技巧,它只是一个简单的函数....循环可能是在调用这个函数的其他函数中。
提示:尝试找到调用函数以便更好地理解。
答案 2 :(得分:0)
bool只是一种数据类型,就像int,float .... etc
在c中,您不能提供与任何数据类型或关键字相同的功能名称。
在你的代码中我认为bool不是你的函数名的一部分......它只是该函数的返回类型
答案 3 :(得分:0)
无论你问什么,我可以说你的代码片段在C,Java和C#中完全相同:第一个是返回bool
的函数,第二个是无限的函数循环。
又是什么问题?
答案 4 :(得分:0)
这只是一个返回bool值的简单函数。但是,正如你所说的那样是游戏,我认为代码中的某个地方(可能是主要功能)它将此功能设置为更新功能,使用如下命令:
setUpdateFrameFunc(update_frame);
在这一行之后,它将创建一个线程并在该线程上反复运行此函数。最后,似乎函数上的代码在while(true)循环中运行。
答案 5 :(得分:0)
我认为(至少标题暗示)你想知道如何在C中指定true
和bool
,是吗?
ANSI C(C89 / C90)不为布尔值提供特殊数据类型;布尔函数用整数表示,其中0代表“false”,其他所有东西都被解释为“true”。
C99通过定义适当的宏来提供“内置支持”,如您在此answer中所见。
因此,您正在查看的代码是使用C99(检查标头是否包含在某处)或bool
是typedef宏,因此请注意是否存在
typedef int bool;
或类似的东西可以在代码中找到。它说“返回TRUE”这一事实意味着后者,因为TRUE
在ANSI C中非常常见,并且通常定义为
#define TRUE 1
所以你可以再次注意这一点。
关于你的另一个问题,该函数可能会做什么,它可以实现类似于“游戏循环”/ while(true)循环,如下所示:
while (update_frame()) { /* render current state to screen */
/* do game logic */
}