精华内容
下载资源
问答
  • //--------------------------------------------------标准的main函数格式为:int main(int argc, char *argv[]); /*即返回值为整型,带两个参数,argc为命令行参数的个数,argv为指针数组, 前argc个指针为参数...
    //--------------------------------------------------
    标准的main函数格式为:
    int main(int argc, char *argv[]); /*即返回值为整型,带两个参数,argc为命令行参数的个数,argv为指针数组,
                                                      前argc个指针为参数列表,最后一个指针值为NULL。*/


    /* main函数,又称主函数,作为绝大大部分C程序唯一的入口,是要求有返回值的,该返回值返回给操作系统来表明改程序的执行状况。
    返回0代表程序正常执行成功,返回非0值代表程序异常结束,因此返回值需要是int整型,于是有了```int main()```的规范。
    如果使用```void main```,既声明主函数没有返回值的话,程序随能编译、运行成功,却不利于操作系统判断其状态,
    这对于由很多C程序构成的大型项目来说是可能会是致命的。*/


    只声明```main```的话系统默认为```int main```。```void main```无论何时都不应该使用因为主函数必须有返回值表明程序运行状态


    //---------------------------------------------------------------------------------------------
    int  main(void)
    {


      return 0;  /*表示这个主函数的返回值是一个int型的数值,且有void 表示此函数的参数一定为空,传参数的话,就会有编译错                  误; 也就是在程序的最后,要写那句经典的 return 0。int main() 没有void的话就不一样了,他表示此函数的参数可                    以是任意多个, 但对参数不予处理,所以你传参数,也不会有编译错误,只不过不处理罢了。 */       
     }


    //---------------------------------------------------------------------------------------------


    void main(void)//表示的是这个主函数是没有返回值的。


    ---------------------------------------------------------------------------------------------


    main()和main(void)/*这两个main函数都不能接受参数。main()这种写法在C99标准以前的版本中使用,
                                          而在C99标准之后如果main函数不需要接受参数的情况下,会写做main(void)。*/


    ----------------------------------------------------------------------------------------------
    int main() 和 void main() /*返回值类型不同,不过由于大多数时候,程序的运行结果可以由其它方式判定,
                                        比如程序的打印信息,所以main的返回值变得不重要,于是大部分编译器都支持无返回值类型的                                             main,这时默认返回给主调进程0值*/

    展开全文
  • 为什么是int mainvoid),而不是void mainvoid)?

    千次阅读 多人点赞 2018-04-15 23:11:55
    C/C++ 小误区:void main() 这是基于我们学校老师一直使用void main(),而发的感慨,大一学习C语言时,我就在想,老师上课演示的为什么一直用void main(),而不是int main()呢?不为了偷懒?还是习惯性的语句...

    C/C++ 小误区:void main()

    这是基于我们学校老师一直使用void main(),而发的感慨,大一学习C语言时,我就在想,老师上课演示的为什么一直用void main(),而不是int main()呢?不为了偷懒?还是习惯性的语句呢?在查阅了部分大牛的博客,翻阅了C Primer Plus和C++ Primer Plus这两本圣经级别的书本之后,得出以下结论(有一部分是别人的结论,属于半转载),可能不太严谨,请多多包涵

    其实,当前,很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的,C/C++中从来没有定义过void main( ), C++ 之父本贾尼·斯特劳斯特卢普 在他的主页上的FAQ 中明确地写着The definition void main( ) { /* ... */ } is not and never has been C++, nor has it even been C.(void main( )从来就不存在于C++或者C)下面我分别说一下C和C++标准中对main函数的定义

     

    1. C 

           在C89 中,main( ) 是可以接受的的经典巨著(C程序设计语言第二版)用的就是main( )不过在最新的C99 标准中,只有以下两种定义方式是正确的: 

               int main( void )

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

           如果不需要从命令行中获取参数,请用int main(void);否则请用int main( int argc, char *argv[] )

     

            main函数的返回值类型必须是int,这样返回值才能传递给程序的调用者(如操作系统)

     

           如果main函数的最后没有写return语句的话,C99规定编译器要自动在生成的目标文件中(如exe文件)加入return 0;,表示程序正常退出不过,我还是建议大家最好在main函数的最后加上return语句,虽然没有这个必要,但这是一个好的习惯注意,vc6不会在目标文件中加入return 0;,大概是因为vc6是98年的产品,所以才不支持这个特性现在明白我为什么建议你最好加上return语句了吧!

     

    2. C++

            正如C++ Primer Plus这本书中说的C++98中定义了如下两种main函数的定义方式:

                     int main( )

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

             int main( )等同于C99中的int main( void );int main( int argc, char *argv[] )的用法也和C99中定义的一样同样,main函数的返回值类型也必须是int如果main函数的末尾没写return语句,C++98规定编译器要自动在生成的目标文件中加入 return 0;同样,vc6也不支持这个特性。

     

    3.关于void main

           在C和C++中,不接收任何参数也不返回任何信息的函数原型为void fun(void);可能正是因为这个,所以很多人都误认为如果不需要程序返回值时可以把main函数定义成void main(void)然而这是错误的!main函数的返回值应该定义为int类型,C和C++标准中都是这样规定的虽然在一些编译器中,void main可以通过编译(如vc6),但并非所有编译器都支持void main,因为标准中从来没有定义过void main中如果main函数的返回值不是int类型,就根本通不过编译发出警告,所以,如果你想你的程序拥有很好的可移植性,请一定要用int main

    4.返回值的作用

         main函数的返回值用于说明程序的退出状态如果返回0,则代表程序正常退出;返回其它数字的含义则由系统决定,而在通常情况下,返回非零代表程序异常退出。

     

    5. 那么 int main( int argc, char *argv[], char *envp[] ) 呢?

     

        这当然也不是标准 C/C++ 里面定义的东西!char *envp[] 是某些编译器提供的扩展功能,用于获取系统的环境变量因为不是标准,所以并非所有编译器都支持,故而移植性差,不推荐使用

    *********************************************************************************

    如果您觉得我不够权威,自己查阅C Primer Plus和C++ primer plus 这两本书吧!!!

     

    展开全文
  • 今天c语言课刚开,从开始的时候看C语言二级的题目到现在新发的课本,最不顺眼的就是主函数只用一个main()或用void main()。 查阅资料发现:C99标准中,定义的是int main(void),这里的void说明main()是不接收参数的...

    今天c语言课刚开,从开始的时候看C语言二级的题目到现在新发的课本,最不顺眼的就是主函数只用一个main()或用void main()。
    查阅资料发现:C99标准中,定义的是int main(void),这里的void说明main()是不接收参数的,这是标准的,不要让他空着,main 函数的返回值类型必须是 int ,为什么有的会通过呢?这是编绎器给你自动加上去的,最后的return 0;也是,不要省略返回。VC6不会在目标文件中自动加入return 0; ,大概是因为 vc6 是 98 年的产品,所以才不支持这个特性。不过,gcc3.2(Linux 下的 C 编译器)会在生成的目标文件中加入 return 0;
    Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main() { } is not and never has been C++, nor has it even been C.
    事实上,新的C99标准中,只有以下两种定义是正确的:
    int main( void )
    int main( int argc, char *argv[] )
    而学校的教材推荐使用的书使用的是C99的标准,里面的内容却是用的C99之前的,学校使用老的标准以及VC6.0环境也许是无奈之举。希望以后能够推陈出新,计算机的等级考试也能不再是为了出题而出题。

    展开全文
  • #include<stdio.h> void main(){ } ...int main(void){ ...void ...main() 这么定义只是说明...int main(void)和int main()是一样的,括号里没有东西就相当于void, 只是说明main函数有一个int类型的返回值 ...
    #include<stdio.h>
    void main(){
    }
    
    
    #include<stdio.h>
    int  main(void){
    return  0;
    }
    
     

    void main() 这么定义只是说明main函数没有返回值

    int main(void)和int main()是一样的,括号里没有东西就相当于void,

    只是说明main函数有一个int类型的返回值

    C语言的规范里面要求main函数需要返回一个int类型的返回值来告诉操作系统这个程序是执行正确还是执行错误。执行正确返回0,执行错误返回非0。但是目前操作系统都不去判断这个返回值,所以你写成void main()还是int main()其实是一样的,没有什么区别。不过既然有规范,还是推荐写成int main()这种形式。
    ————————————————
    版权声明:本文为CSDN博主「chen_9271」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/chen_9271/article/details/82721371

    展开全文
  • 在C语言编程中通常会看到 **int main()、int main(void)、void mainvoid)、main()和mainvoid)、int main() 和 void 首先来看看标准的主函数写法是什么样的,在C99标准(ISO/IEC 9899:1999)的5.1.2.2.1 ...
  • void main(void)

    千次阅读 2008-09-09 15:01:00
    很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* .....
  • 3.C语言从来没声明过```void main```,只声明过```main()```。 3.抛弃一切用```void main```编写C程序的习惯!   稍微深入 main函数,又称主函数,作为绝大大部分C程序唯一的入口(比如windows编程中可
  • void main(void)用法

    千次阅读 2014-04-24 17:09:28
    void main(void) { int taxis[] = {113,5,22,12,32,233,1,21,129,3}; char Text1[] = {"source data:"}; //"源数据" char Text2[] = {"sorted data:"}; //"排序后数据" unsigned char TempCyc; SCON = 0x50; /...
  • void main(void) - the Wrong Thing

    千次阅读 2010-06-10 18:18:00
    很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /...
  • int mainvoid main的区别

    千次阅读 2018-11-01 15:21:48
    正确而且标准的方式应该是int main()或者int main(int argc, char* argv[])
  • 1、区别是main()函数是否有返回值。2、void定义的函数没有返回值,int定义的函数返回整型值。3、void,字面意思是“无类型”,常用在程序编写中对定义函数的参数类型、返回值、函数中指针类型进行声明,有注释和限制...
  • error C2556: “void main(void)”: 重载函数与“int main(void)”只是在返回类型上不同 什么原因呢? 原来在上一个例子编译成功后,在原来的源文件后面接着写新的程序, 又添加
  • void main 和 int main的区别

    万次阅读 多人点赞 2018-09-13 18:54:44
    main是一切(控制台)程序都必须有的一个入口函数 main函数是否有返回值在绝大多数情况下无关紧要 ...void main是写入,int main是定义读取你要求的东西。 void的意思是没有返回值,int的意思是返回...
  • 关于void main(void)的错误

    千次阅读 2010-10-15 22:19:00
    虽然我一直知道, int main(void) { return 0; } int main(int argc,char**argv) { return 0; } 这种写法是c99标准里面规定的。 但我不知道为什么会是这样。...
  • C语言中int main(void)与int main()的区别

    万次阅读 多人点赞 2019-09-14 18:57:10
    int mainvoid) 指此函数的参数为空,不能传入参数,若输入参数则会出错,但必须要有返回值,如return 0;。 int main()可以传入参数,程序可以不需要返回值。 但在c++中二者没有区别。 ...
  • C/C++中mainvoid main()还是int main()

    千次阅读 2017-06-23 17:07:14
    main函数都写成void main(),而不是int main()。那么,到底哪个是正确的,或至少是推荐使用的呢? main函数的返回值大家注意了吗,也许有人会说可以没有返回值,如果你深入到程序的CRT启动代码,你会...
  • main()和mainvoid)的关系

    千次阅读 2014-03-14 22:22:11
    在学习C语言中,突然有一天发现了这个问题:main()和mainvoid),它们两个到底有什么样的不同和相同之处呢?  相同之处:这两个main函数都不能接受参数。  不同之处:main()这种写法在C99标准以前的版本中...
  • void main 与int main的区别

    千次阅读 2015-01-17 16:45:26
    void main 和 int main的区别就是有无返回值啊 在int main 可以出现非 int 类型的东西 我们在写代码时,一个函数要么有返回值,要么没有返回值,没有返回值就用void来表示。 main函数同样的,在没有返回值时加个void...
  • void main(void) - 错误的用法

    千次阅读 2008-08-25 13:16:00
    USE_NET新闻组一直苦恼于一个问题的讨论,我们能否用void作为一个main的返回类型,ANSI标准说不能,然而,大量的关于C的启蒙书中的例子都使用了void main (void),这让许多人感觉不知该如何是好。 当有人问为什么...
  • public static void main

    千次阅读 2017-06-28 16:06:06
    Public static void main(String[] args)程序入口的方法 Public:修饰权限,任何类或者对象都可以访问main方法 Static:静态方法,只要类被加载就可以直接调用,不需要实例化对象来访问 Voidmain方法没有...
  • 为什么 main 方法是 public static void

    千次阅读 多人点赞 2020-04-19 15:27:59
    main方法是我们学习Java编程语言时知道的第一个方法,你是否曾经想过为什么main方法是public、static、void的。当然,很多人首先学的是C和C++,但是在Java中main方法与前者有些细微的不同,它不会返回任何值,为什么...
  • void main 与 int main到底有什区别,而去int main里面的int与数据定义的int一样吗,有什么区别?
  • C语言 void main()出错

    2020-12-19 22:38:20
    c语言的标准语法是int main()。 void main()是未定义行为,程序能否正常运行由编译器决定。 CodeBlocks中,void main()就会报错。 程序设计中,我们应当使用正确的语法int main()。
  • 函数 void main 与 int main 的区别

    千次阅读 2016-06-05 20:55:48
    c语言中的void main和 int main 其返回值不同 标准的c语言要求main函数的返回值为int,该值是执行程序时,告知主调进程程序运行结果的一个渠道 标准的main函数格式为 int main(int argc,char*aggv[]); 及返回值...
  • int main(void)才是正确写法

    千次阅读 2019-02-26 15:26:22
    void main() { // some code … } 上述代码在VC++中是可以正确编译、链接、执行的。 但是当你将代码放在Linux环境下,采用GCC编译器进行编译时,你会吃惊地发现编译器抛出了如下的错误信息: main.cpp:2: 错误...
  • C语言中int mainvoid main的区别

    千次阅读 2011-04-18 13:22:00
    正确而且标准的方式应该是int main()或者int main(int argc, char* argv[])   原因是:main函数的返回值是用来表示程序的退出状态的,return 0表示无错误,其他的返回值根据系统不同可能代表不同的...
  • C++之 main() ,void main() ,int main()等区分

    千次阅读 多人点赞 2019-01-16 21:01:38
    1、各种main函数 大家在看各种C++代码主函数时,发现,写法有很多种,比如: int main() { //代码 return 0; ...void main() { //代码 } //…… 2、对比 这些主函数本质上的区别是返回...
  • void main()误区

    千次阅读 2013-04-03 15:13:18
    很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) .C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ...
  • main 函数返回值void的警告

    千次阅读 2012-08-26 16:44:39
    很多人甚至市面上的一些书籍,都使用了void main( ) ,其实这是错误的。C/C++ 中从来没有定义过void main( ) 。C++ 之父 Bjarne Stroustrup 在他的主页上的 FAQ 中明确地写着 The definition void main( ) { /* ... ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 432,939
精华内容 173,175
关键字:

mainvoid