main()是用户定义的函数吗?

时间:2011-01-15 15:36:42

标签: c++ user-defined-functions main

程序员确实定义main()内发生的事情。

那么,它应该被视为用户定义的函数吗?

7 个答案:

答案 0 :(得分:7)

C ++标准没有用户定义函数的概念。相反,它具有库函数的概念。 main不是库函数。但是,该标准还对其签名提出了一些要求,并且不得过载或声明为静态或内联。特别是,它不能使用,这意味着你无法调用它。

编辑:我最初只检查了C标准。我现在也检查了C ++标准,它在以下上下文中使用“用户定义”:运算符,类型,转换和库。它还具有用户声明的命名空间,用户声明的(默认和复制)构造函数以及用户编写的默认构造函数。它在27.1.1中有“用户功能”。

答案 1 :(得分:2)

是 - main是用户定义的功能。考虑它的最简单方法是用户定义,但标准声明。

它还有其他限制,例如,非递归。但是,在某些编译器(如MSVC)上,允许在main()中进行递归。我觉得这很方便。

答案 2 :(得分:1)

如果它不是用户定义的功能,它会是什么?显然不是内核或库函数?我不确定我明白你在这里得到了什么......

答案 3 :(得分:1)

main函数既不是内置(预定义)函数,也不是用户定义函数。这是一个例外,你必须遵循C ++标准中规定的与之相关的要求(例如关于它在程序中的存在,返回类型和参数)。

答案 4 :(得分:0)

Main()在预定义函数中,代码在程序中开始执行。如果您没有主函数,程序将无法运行。因此,马宁是该计划的起点。

答案 5 :(得分:0)

main()不是预定义或内置函数。它是一个用户定义的函数,具有预定义的函数原型(也称为函数签名)。用户编写其功能,但其声明有一定的限制。

答案 6 :(得分:0)

main()既不是用户定义的,也不是内置库函数。

在尝试将C程序编译为可执行文件时,编译器会在您的源列表中查找名为main的函数。

但是,创建库(作为共享对象或仅通过提供必需的头文件)具有不同的分支。

您知道,GCC会使用以下任一签名来查找main

int main(int, char **);

OR

int main();