我如何从main()继续进入第二个main2()



我有问题。这是简化的版本:

    #include <iostream>
    using namespace std;
    int main() {
      cout << "Hello!";
      return 0;
     }
    string name = "My name is ______";
    int main2() {
      cout << name;
      return 0;
     }

我试图删除第一个返回0;在主((中,但什么也没做。我想以某种方式从main((启动main2((。是否可以?我尝试运行代码(我使用repled.it(,但没有返回任何错误消息。我还尝试从终端运行它,它只是打印您好!

是。尝试这样的事情:

#include <iostream>
using namespace std;
// Forward declare |main2|.
int main2();
int main() {
  cout << "Hello!";
  main2();
  return 0;
}
string name = "My name is ______";
int main2() {
  cout << name;
  return 0;
}

在此处详细介绍C 和Python之间的差异:在C main中,是您程序的入口点。因此,在C 中,您可以将main功能的开始视为Python的"文件顶部"的等效物。您的程序将开始在main的顶部运行,并在其末端停止运行。从main函数(或传递性调用(开始未调用的任何内容都不会执行。

您写的内容大致等于以下python:

def main():
  print('Hello')
  return 0
name = 'My name is ____'
def main2():
  print(name)
  return 0
if __name__ == '__main__'
  sys.exit(main())

我相信现在很清楚为什么main2永远不会被执行:它从未被调用。

请注意,C 中的main函数是一个函数,在程序启动时会自动调用,并且退出main终止了程序。您想在程序运行时想发生的任何事情都必须从main中调用。

还要注意,必须在使用之前声明名称(例如函数(。因此,您必须在main之前将main2的定义移动,或者至少在那里声明main2。您可以这样做:

#include <iostream>
using namespace std;
int main2();
int main() {
  cout << "Hello!";
  return main2();
}
string name = "My name is ______";
int main2() {
  cout << name;
  return 0;
}

您必须在main((内拨打main2((:

#include <iostream>
    using namespace std;
        string name = "My name is ______";
        int main2() {
          cout << name;
          return 0;
         }
        int main() {
          cout << "Hello!";
          main2();
          return 0;
         }

相关内容

  • 没有找到相关文章

最新更新