c/c++语言开发共享这些C的​​主要function是什么?


可能重复:
为什么C和c ++中的main函数的类型留给用户定义?

我遇到过许多C的主要函数风格和写法语法,但我实际上并没有得到这个语法意味着什么,任何人都可以简要介绍每种语法? 为什么无效? 为什么int? 为什么void,int作为参数?

void main() { } int main() { } int main(void) { } void main(void) { } int main(int) { } int main(int argc, char* argv[]) { } 

    c标准规定了两种符合实现的forms:

    基于两种类型的环境,c标准定义为:

    什么是freestanding Environment和什么是Hosted Environment

    独立实现是专为在没有操作系统的情况下执行的程序而设计的实现。 对于Ex:OS内核或嵌入式环境将是一个独立的环境。

    使用操作系统function的程序通常位于托管实现中。

    ac程序如何在这两种环境中执行? 有什么不同?

    C程序如何在这两种环境中开始执行有所不同。
    对于独立环境,程序启动可以通过任何实现定义的函数来实现。 即使是main()也不存在要求

    因此,问题中提到的任何函数定义都可以有效,具体取决于该独立环境的实现。 并且它们的函数参数和返回值将具有实现定义的含义,因此您需要检查其文档以了解其精确含义。

    参考:

    5.1.2.1独立环境

    在独立环境中(可以在没有操作系统任何好处的情况下执行C程序), 程序启动时调用的函数的名称和类型是实现定义的 。 除了第4节要求的最小集合之外,任何独立程序可用的库设施都是实现定义的。

    对于托管环境,标准要求程序执行从执行main()函数开始,并且还要求如何定义此函数。

    其规格如下:

    C99标准:5.1.2.2托管环境

    5.1.2.2.1程序启动

    1程序启动时调用的函数名为main。 该实现声明此函数没有原型。 它应该使用返回类型int并且没有参数来定义:

      int main(void) { /* ... */ } 

    或者使用两个参数(这里称为argc和argv,尽管可以使用任何名称,因为它们是声明它们的函数的本地名称):

      int main(int argc, char *argv[]) { /* ... */ } 

    或同等学历; 或者以其他一些实现定义的方式。

    void返回类型意味着作者意味着不向调用者返回重要值(程序的调用者)。 根据操作系统的不同,这可能是可以接受的,或者可能会导致程序启动时出现细微的困难。

    void作为参数意味着程序将不使用检查命令行参数的传统方法。 有些环境提供了获取它们的替代方法; 别人不这样做。 在后一种情况下,它意味着程序忽略任何命令行参数。

    main (int)允许程序检查在命令行上传递给程序的参数数量,但不检查它们的值。 这样的安排是不常见的,但是在许多实现中执行此操作的一个程序是Unix / Linux who命令列出登录用户,除了who am i只列出当前用户。 就像你是who is you一样(因为两者都有两个参数:

     [wally@lenovotower ~]$ who wally tty1 2012-01-31 22:24 (:0) wally pts/0 2012-01-31 22:24 (:0) wally pts/1 2012-01-31 22:33 (:0) wally pts/2 2012-01-31 22:34 (msi) root pts/3 2012-01-31 22:34 (msi) [wally@lenovotower ~]$ who am i wally pts/0 2012-01-31 22:24 (:0) [wally@lenovotower ~]$ who are you wally pts/0 2012-01-31 22:24 (:0) [wally@lenovotower ~]$ 

    ОК,简要说明。

    如果您不关心用户指定的命令行参数,并且您不想设置退出代码,则可以这样写:

     void main() 

    没有参数,但想设置退出代码:

     int main() 

    与previos相同,但在旧C风格:

     int main(void) 

    与第一个相同,但在旧C风格:

     void main(void) 

    如果您只想知道命令行参数的数量:

     int main(int) 

    最完整的变种:

     int main(int argc, char* argv[]) 

    argc是参数计数,argv是参数数组,函数返回退出代码。

      以上就是c/c++开发分享这些C的​​主要function是什么?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/562378.html

      (0)
      上一篇 2021年2月4日
      下一篇 2021年2月4日

      精彩推荐