【发布时间】:2021-09-03 11:05:18
【问题描述】:
我正在将我的 C++ 代码更改为 C 代码,因为我发现自己倾向于更纯粹的函数式程序,并且没有真正使用任何 C++ 功能。快速编译也是一个优点。
我的标题中的这个特殊位有问题:
void gameLoop();
void doStuff();
enum GameState
{
MENU, PLAY, EXIT
};
GameState gameState;
我想在我的源代码中用于这样的功能:
void gameLoop()
{
while (gameState != GameState::EXIT)
{
doStuff();
}
}
【问题讨论】:
-
在C中你不能使用
::;你需要使用while (gameState != EXIT)(这也应该在 C++ 中工作,这就是为什么在 C++ 中你应该使用枚举类。 -
请不要修改您的问题,使答案变得毫无意义。您从问题中删除了
GameState::EXIT,现在您的 switch 语句格式不正确。 -
很抱歉。已修复以明确的方式显示原始代码和修改后的代码
-
如果你想要更纯粹的函数式编程,C++ 对我来说是比 C 更好的选择,因为它有 lambda 函数,实现了闭包。在纯 C 中实现真正的闭包似乎很困难而且非常冗长。