你能定义一个在C中返回bool的函数吗?

时间:2011-08-13 04:26:45

标签: c loops

我对C或C ++的经验很少,所以我不理解该语言中的各种快捷方式和常见任务。

我正在查看与此类似的游戏代码:

bool
update_frame (void)
{
  // Various bits of code
  return TRUE;
}

这是游戏的主要循环。我认为它类似于:

while (true) {
  // do stuff
}

我将在C#或Java中使用它。这是在发生什么事吗?

6 个答案:

答案 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中指定truebool,是吗?

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 */
}