c语言有且唯一的函数是什么?

  • 来源:网络
  • 更新日期:2020-07-06

摘要:在c语言中有且唯一的函数是:“main”函数。“main”函数,又称主函数,是程序执行的起点;如果有其他函数,则会完成对其他函数的调用后再返回到主函数,最后由“main”函数结束整个程

在c语言中有且唯一的函数是:“main”函数。“main”函数,又称主函数,是程序执行的起点;如果有其他函数,则会完成对其他函数的调用后再返回到主函数,最后由“main”函数结束整个程序。

c语言有且唯一的函数是:main函数

main函数,又称主函数,是程序执行的起点

程序执行总是从main函数开始,如果有有其他函数,则完成对其他函数的调用后再返回到主函数,最后由main函数结束整个程序。在执行程序时,由系统调用main函数 。

main 函数是在程序启动中完成对具有静态存储期的非局部对象的初始化之后被调用的。它是程序在有宿主 (hosted)环境(亦即有操作系统)中所指定的入口点。自立程序(启动加载器,操作系统内核,等等)的入口点则是由实现定义的。

主函数的两个形参形式中的形参,允许从执行环境中传递任意的多字节字符串(它们通常被称为命令行参数),各个指针 argv[1] .. argv[argc-1] 指向每个这些字符串的第一个字符。argv[0] 是指向一个表示用于执行该程序自身的名字的空结尾多字节字符串(或者当执行环境不支持时,为空字符串 "")的开头字符的指针。

这些字符串是可以改动的,虽然对它们的改动并不会被传回给执行环境:比如可以用 std::strtok 来使用它们。由 argv 所指向的数组的大小至少为 argc+1,其最后一个元素 argv[argc] 保证为一个空指针。

在最新的 C99 标准中,只有以下两种定义方式是正确的:

int main( void )  /* 无参数形式 */
{
    ...
    return 0;
}
int main( int argc, char *argv[] ) /* 带参数形式 */
{
    ...
    return 0;
}

int指明了main()函数的返回类型,函数名后面的圆括号一般包含传递给函数的信息。void表示没有给函数传递参数。关于带参数的形式,我们等会讨论。

浏览老版本的C代码,将会发现程序常常以。

main()

这种形式开始。C90标准允许这种形式,但是C99标准不允许。因此即使你当前的编译器允许,也不要这么写。

你还可能看到过另一种形式。

void main()

有些编译器允许这种形式,但是还没有任何标准考虑接受它。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地表示:void main( ) 的定义从来就不存在于 C++ 或者 C 。所以,编译器不必接受这种形式,并且很多编译器也不允许这么写。

坚持使用标准的意义在于:当你把程序从一个编译器移到另一个编译器时,照样能正常运行。

推荐教程:《C语言》