c++中的main函数

c++句法要求,Main()函数定义以函数头int main()开始。

c++中函数可以被其他函数激活或调用,函数头描述了函数与调用它的函数之间的接口。通常由函数返回类型 函数名 (参数列表/形参列表) 的形式构成。

但是这样的通用格式用于main函数有点奇怪,因为通常不会从程序的其他部分调用main,main()通常被启动代码调用,main是作为程序与操作系统之间的接口。

这里简单介绍一下启动代码

启动代码是一段和硬件相关的汇编代码。由编译器添加到程序中,使程序和操作系统的桥梁,它是一个工程中所必不可少的,他的主要作用是:
1 堆栈( SP)的初始化;
2 初始化程序计数器(PC)
3 设置向量表异常事件的入口地地址;
4 调用Main函数。

简而言之,下面的函数头表明main函数可以给调用它的函数返回一个整数值,且不从调用它的函数那儿获取任何信息

int main()

有些地方需要注意:

main()  //original c style

上面是很多现有程序都使用的经典C函数头,C语言中省略返回类型相当于说函数使int类型,但是c++逐步淘汰了这个用法,可以尝试使用下面的变体:

int main(void)  //非常清楚明白地风格

上面的风格,括号中void指出函数不接受任何参数,在c++(不是c)中,让括号空着和在括号中使用void等效(在c中括号中空着表示对是否接受参数保持沉默)。
还有常使用的下面这种形式:

void main()

逻辑上与int main(void)是一致的,void返回类型意味着不返回任何值,但是该变体不是标准强制的一个选项,所以有些系统上不能工作,要尽量避免这种格式
另外ANSI/ISO C++标准对于抱怨main函数最后需要包含返回语句过于繁琐做出了让步,编译器到达main函数末尾没有遇到返回语句时,默认retrun 0;这种默认仅限于main() 函数。

main()可以使用其他名称吗?

不可以,且大小写和拼写都必须正确,c++程序从main()函数执行,因此,没有main()程序就不完整,编译器将指出未定义main()函数。
当然也有例外情况,例如:

  • 在windows编程中,可以编写DLL模块,这是其他windows程序可以使用的代码。由于DLL模块不是独立程序,因此不需要main()。
  • 还有专用环境的程序——机器人中的控制芯片等也可能不需要。
  • 还有编程环境提供框架程序,该程序调用一些非标准函数,如_tmain()。这种情况下有一个隐藏的main()。

你可能感兴趣的:(c++,开发语言)