将主函数拆分为多个文件C++; 我正在学习C++,我正在尝试制作一个2D游戏,我想知道是否有任何方法把主函数分成多个文件,这些文件代表游戏的不同状态(主菜单,游戏…),以保持文件清晰可读。 我不想使用其他函数,因为我想继续访问主函数中的所有变量。 此外,我认为#include不应以这种方式使用,这就是我提出这一问题的原因

将主函数拆分为多个文件C++; 我正在学习C++,我正在尝试制作一个2D游戏,我想知道是否有任何方法把主函数分成多个文件,这些文件代表游戏的不同状态(主菜单,游戏…),以保持文件清晰可读。 我不想使用其他函数,因为我想继续访问主函数中的所有变量。 此外,我认为#include不应以这种方式使用,这就是我提出这一问题的原因,c++,include,game-engine,C++,Include,Game Engine,这是可能的还是我做错了?拆分主功能是个坏主意吗?即使我想使用许多变量,我也应该使用带有指针或引用的函数吗?我真的不知道如何继续。我想说的是,错误的是,您有许多变量,您想在如此大的一段代码中共享,以至于您觉得应该将代码拆分为单独的源文件。这与在整个应用程序中由各种函数访问大量全局变量没有什么不同——这通常也不是一个好主意 您应该考虑如何将数据组织到对象中,以逻辑方式将相关项分组在一起 当然,您可以将程序拆分为多个源文件。 方法通常是将其拆分为多个函数/类,然后将它们放入多个文件中 您特别询问是否可

这是可能的还是我做错了?拆分主功能是个坏主意吗?即使我想使用许多变量,我也应该使用带有指针或引用的函数吗?我真的不知道如何继续。

我想说的是,错误的是,您有许多变量,您想在如此大的一段代码中共享,以至于您觉得应该将代码拆分为单独的源文件。这与在整个应用程序中由各种函数访问大量全局变量没有什么不同——这通常也不是一个好主意


您应该考虑如何将数据组织到对象中,以逻辑方式将相关项分组在一起

当然,您可以将程序拆分为多个源文件。 方法通常是将其拆分为多个函数/类,然后将它们放入多个文件中

您特别询问是否可以将
main()
拆分为多个文件,问题也是“是”。您有多种选择:

  • 滥用预处理器,将main的块放在不同的文件中,然后将这些块包含在
    main()
    中(尽管这是一个非常糟糕的主意)

  • main()
    所做的工作拆分为类和函数,并将需要处理的数据传递给它们。如果共享状态的数量很大,您可以将其放入传递的
    struct
    s中,或者更好地重新设计以减少对共享状态的依赖。(您也可以使用全局变量,但这将是一个非常糟糕的解决方案)


只要使用类/函数并编写程序,就不需要太多的共享变量。

我知道您希望将所有内容都保存在一个函数中,因为它看起来更简单、更容易理解。但是,随着添加更多代码,函数将变得不可管理。您将意识到,从头重写所有内容比修改现有代码更容易。我们都去过那里。 建议您学习函数和类是如何工作的。事实上,它们是为了让程序更容易编写和理解

说到main()。保持此函数尽可能短是一个很好的做法。它应该读作您的程序的高级概述。将的所有详细信息转换为您调用的其他函数。比如:

int main(int argc, char* argv[])
{
    parse_arguments (argc, argv);
    initialize_display (...);
    initialize_user_input (...);
    initialize_game_engine (...);

    run_game_engine (...); // <-- here is your eternal loop with a timer

    cleanup_game_engine ();
    release_user_input ();
    release_display ();
    return 0;
}
intmain(intargc,char*argv[])
{
解析_参数(argc,argv);
初始化_显示(…);
初始化用户输入(…);
初始化游戏引擎(…);

运行_game_engine(…);//您可以在函数中包含另一个文件,但不能。无法将主函数拆分为单独的文件。除此之外,这是个坏主意。因为main()应用程序不能进入多个应用程序。应用程序不能有多个。但是你认为正确的方法和方法是很好的。你需要面向对象的方法和所有的财富。结构在C++中有用吗?或者类是对它们的替换/改进吗?<代码>结构> <代码> >和代码>类< /代码> ''它们的默认访问只有不同。<代码> CLA。默认情况下,ss
是私有的。
struct
是公共的。除此之外,它们是相同的。