C++单文件运行多个函数的方法及main函数优先级疑问
C++中main()函数的作用及单文件运行多个函数的方法
为什么只有main()函数被执行?
C++标准明确规定,main()是程序的唯一入口点。当操作系统加载你的可执行文件后,会自动定位并调用main()函数,程序从这里开始执行。其他函数(比如你写的starter())只是被定义了,但如果没有被显式调用,编译器和操作系统都不会主动去执行它们。
这和Python的执行逻辑完全不同:Python是从脚本第一行开始逐行执行代码,而C++是严格以main()为起点,所有非main函数的逻辑,必须通过在main()或其他被调用的函数中触发,才会被执行。
如何在单文件中运行多个函数?
要让starter()函数也执行,你只需要在main()函数内部显式调用它即可。比如修改你的代码如下:
#include <iostream> using namespace std; int starter() { //declaring variables int a, b; int result; // process a = 5; b = 2; a = a + 1; result = a - b; //print the result cout << result << endl; // 加换行区分两个输出 //terminate the program return 0; } int main() { // 先调用starter函数 starter(); int a = 5; //"c-like" int b (3); // "constructor" int c {1}; // "uniform" int result; //initial value undetermined result = a + b - c; cout << result << endl; return 0; }
运行修改后的程序,会先执行starter()里的逻辑输出4,再执行main()剩余代码输出7。
你还可以在main()里多次调用同一个函数,或者调用多个不同函数,只要遵循函数语法正确调用即可——如果函数需要参数,直接像Python中那样传递对应参数就行。
内容的提问来源于stack exchange,提问作者Aurel Gerber
相关产品推荐
相关产品推荐

