写C主要功能

这个问题在这里已经有了答案:

  • main()应该在C和C ++中返回什么? 19个答案

  • main()的返回值用于指示其父进程的成功或失败。 更一般地说,它也可以用来反馈特定的状态,尽管C没有定义这些状态。

    如果main()返回0EXIT_SUCCESS ,那么程序成功。 EXIT_FAILURE或非零,则失败。

    参数列表中的void只是表示它不带任何参数。 这是因为C的一个(错误)特征,它允许你声明一个函数而不需要完全指定它所需要的参数。 一个函数声明为int func(); 可以用任意数量的参数调用,但是int func(void); 只能用零表示。

    在linux上,

    两个简单的程序:

    $ cat ret0.c
    int main (void) { return 0; }
    $ cat ret42.c
    int main (void) { return 42; }
    
    Then in `bash` we can look at
    $ ./ret0 ; echo $?
    0
    $ ./ret42 ; echo $?
    42
    

    所以在调用你的程序时可以使用这个状态。


    int返回值用于将错误指示符返回给操作系统。 return 0意味着没有错误,所有其他代码(通常return 1 )表示程序无法成功完成。 其他程序(例如,shell脚本)可以使用此错误代码来确定您的程序是否执行其任务,或遇到问题。

    void只是意味着没有参数。 它和。一样

    int main()
    {
        /* program */
    }
    

    但更明确。

    程序可以使用命令行参数,在这种情况下main必须定义为

        int main(int argc /* number of arguments */, char *argv[] /* arguments)
        {
            /* program
        }
    

    任何关于C的好书都应该解释这一点。


    首先让我们忘掉主力。 在C(而不是C ++)中,如果你定义一个没有像这样的参数的函数

    int f(){ return 0;}
    

    用任意数量的参数调用这样的函数是合法的:

    int a = f(); /* legal */
    int a = f("help", 1, 2.0); /* legal */
    

    如果你希望你的函数f只能用完全没有参数的方式工作,你可以像这样修改它:

    int f(void){return 0;}
    int a = f(); /* legal */
    int a = f("help", 1, 2.0); /* not legal as it has too many parameters */
    

    main()main(void)同样适用。 在大多数情况下,在合理的世界里,大多数人永远不会在乎,但是我遇到了在程序中称为main法律代码。

    所以声明main像:

    int main() {
         /* Do a bunch of stuff here */
    }
    

    允许程序中的其他地方执行此操作:

    main(); 
    main(1,2,3,4);
    

    通过声明main(void)可以添加一个编译器检查,以防止编译后者的main(1,2,3,4)示例。

    链接地址: http://www.djcxy.com/p/12517.html

    上一篇: Writing C main function

    下一篇: Why would you precede the main() function in C with a data type?