main()函数的基本结构如下:

 int main()
{
statements
return ;
}

这几行代码构成了函数定义(function definition),该定义由两部分组成:

第一行int main() —— 函数头(function heading);

花括号({和})中包括的部分叫函数体。

函数头对函数与程序其他部分之间的借口进行了总结;

函数体是支出函数应做什么的计算机指令。

在C++中,每条完整的指令都称为语句。所有的语句都以分号结尾。

main()中最后一条语句叫做返回语句(return statement),它结束该函数。

1.作为接口的函数头

C++函数可以被其他函数激活或调用,函数头描述了函数与调用它的函数之间的接口。(感觉就像我是程序员,这是我的名片,上面有我的联系方式,你要是电脑坏了可以找我,just for fun)。

位于函数名钱的叫做函数返回类型,它描述的是从函数返回给调用它的函数的信息。

函数名后的括号中的内容叫做形参列表(argument list)或参数列表(paramenter list):他描述的是从调用函数传递给被调用函数的信息。

通常,main()被启动代码调用,而启动代码是由编译器添加到程序中的,是程序和操作系统之间的桥梁。该函数头描述的是main()和操作系统之间的接口。

下面的函数头表明main()函数可以给调用它的函数返回一个整数值,且不从调用它的函数那里获得任何信息:

int main()

也可以使用如下变体:

int main(void) // very explicit style

在括号中使用关键字void明确地支出,函数不接受任何参数。

ANSI/ISO C++标准对那些抱怨必须在main()函数最后包含一条返回语句过于繁琐的人做了让步。如果编译器到达main()函数末尾时没有遇到返回语句,则认为main()函数以如下语句结尾:

return 0;

这条隐含的返回语句只适用于main()函数,而不适用于其它函数。

2.为什么main()不能使用其他名称

通常,C++程序必须包含名为main()的函数。

在运行C++程序时,通常从main()函数开始执行。因此,如果没有main(),程序将不完整,编译器将支出未定义main()函数。

存在一些例外情况。例如:

在Windows编程中,可以编写一个动态链接库(DLL)模块,这是其他Windows程序可以使用的代码。由于DLL模块不是独立的程序,因此不需要main()。

用于专用环境的程序——如机器人的控制器芯片——可能不需要main()。

有些编程环境提供了一个框架程序,该程序调用一些非标准函数,如_tmain()。在这种情况下,有一个隐藏的main(),它调用_tmain()。

但常规的独立程序都需要main(),本章讨论的都是这种程序。

最新文章

  1. Docker version 1.12.5建立registry私库
  2. go语言的 数组、slice、map使用(转)
  3. vmware打开出错,需要打开虚拟化的设置
  4. JavaScript 页面模板引擎
  5. 一个fork的面试题
  6. TortoiseGit文件夹和文件图标不显示解决方法
  7. 关于scrollview监听的一些方法
  8. simplexml_load_string获取xml节点里的属性值
  9. Flex数据交互之Remoting[转]
  10. Ubuntu 小技巧
  11. Linux写配置HDF5的python包h5py
  12. SAE下的Memcache使用方法
  13. Myeclipse中隐藏jar包
  14. Java学习笔记5(类的入门以及ArrayList)
  15. Android 性能优化之使用Lint
  16. 【LOJ2586】【APIO2018】选圆圈 CDQ分治 扫描线 平衡树
  17. 学习Android过程中遇到的问题及解决方法——AS为xutils添加依赖
  18. python之文件操作的函数
  19. 详细解读Volley(一)—— 基本Request对象 & RequestQueue
  20. java maven 安装

热门文章

  1. SQL server 存储过程 C#调用Windows CMD命令并返回输出结果 Mysql删除重复数据保留最小的id C# 取字符串中间文本 取字符串左边 取字符串右边 C# JSON格式数据高级用法
  2. dubbox rest协议jackson 反序列化的坑
  3. Oracle GoldenGate (ogg) 11.2.1.0.20 是最后一个支持oracle db 10g的 ogg版本号
  4. Mysql User表权限字段说明全介绍
  5. java中native关键字的用法
  6. Atitit.软件仪表盘(4)--db数据库子系统-监测
  7. win32之全屏窗口
  8. jquery 给表格tbody t 加事件
  9. 上传绕过WAF几种常见的姿势
  10. LT和ET模式