我有问题。这是简化的版本:
#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;
}