这个得从面向过程的C语言开始。
为什么说C语言一定要有main函数呢?
C语言中有数据和函数。函数部分放在代码区,数据分为两类:局部的和全局的,它们的区别在于放在静态数据区还是堆栈中。而且全局变量和静态变量是在函数执行前就创建好的。
C语言又有一个规定:全局区不能有可执行代码 ,可执行代码必须进入函数中。但是C语言中的函数都是全局的,这就导致函数不能嵌套定义:嵌套定义导致函数内部定义的函数成了局部函数。所以要解决各个函数的执行问题只能通过函数的嵌套调用。这时就需要有一个函数首先被执行,来调用其他一系列的函数,完成程序的功能,而这个第一个调用的函数就是main函数。
现在我们再看C++程序,让我们分析一下下面这段代码:
#include <iostream>
using namespace std;
class A
{
public:
A()
{
int a = 5;
cout<<a<<endl;
cout<<"A"<<endl;
}
};
A a;
int main()
{
cout<<"main"<<endl;
return 0;
}
我们定义了一个类A,又定义了这个类的一个全局对象a,然后是main函数。程序的运行结果是先输出5,再输出A,最后输出main—因为全局变量的创建的确在main函数之前。那么理论上,我们是不是可以把为了完成目的的所有函数都写在类A的构造函数中,而让main函数为空呢?当然是可以的,这也就意味着main函数的作用没有C语言中那么举足轻重了。
分享到:
相关推荐
C++_main()函数及其参数 argc argv
有关C++中main()函数的说明,便于大家理解main()函数中return的详细说明。
用于引导大家手工在vs2013中写出main函数,方便了解mfc自动生成的过程
通常我们使用的main函数都是不用带形参的,但其实main函数也是可以带形参的
本文实例分析了C++中回调函数(CallBack)的用法。分享给大家供大家参考。具体分析如下: 如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。 其错误是普通的C++成员函数都隐含了一个传递...
C++函数C++函数C++函数C++函数C++函数C++函数C++函数C++函数C++函数C++函数C++函数C++函数C++函数C++函数
c++虚函数.C++中的虚函数的作用主要是实现了多态的机制。
c++常用三角函数,入门基础练习
关于c++中format函数的详解 超完整。本人收集整理 学习c++必备资料
C++回调函数.pdf C++回调函数.pdf C++回调函数.pdf mfc c++
C++自动生成函数调用关系图.rar
C++中的类中函数调用,只是基于简单的函数调用的例子
C++string常用函数,c++文件流操作,C++中的日期和时间
虚函数表中虚函数的分布情况;其中包括发生继承的情况下虚函数表中虚函数的分布情况;
讲叙在嵌入式系统中,在c文件中如何调用c++文件中的函数的方法,并且还着重讲叙了c++文件中编写可以被c文件中调用函数的规则及方法。
1. vs2008里弄了一个画数学函数的类,基本的函数都可以画,当然复杂的也可以,只是函数本身需要调用者设计,已经变量的范围 2. 最后的图象提供两种方式输出,一个是bmp文件,一个是gif图象,gif需要注意它的256种...
为了验证C++类间函数的相互调用,利用VC6.0的对话框和任意一个逻辑类,实现了点击对话框按钮-〉调用逻辑类函数-〉在对话框显示运行结果的功能
c 与 c++中的time相关函数 c 与 c+c 与 c++中的time相关函数+中的time相关函数 c 与 c++中的time相关函数c 与 c++中的time相关函数
用于查看c++库文件dll内部函数名称,反汇编工具的一款神奇。 用于查看c++库文件dll内部函数名称,反汇编工具的一款神奇。
帮助C++学习者快速掌握C++中数学函数的使用方法,加快C++的学习速度。