我能够写“void main()”吗?


  
这种定义: 
  
    void main() { /* ... */ } 
  
在 C++中从未被允许,在 C 语言中也是一样。参见 ISO C++标准 3.6.1[2]或者 ISO C
标准5.1.2.2.1。规范的实现接受这种方式: 
  
    int main() { /* ... */ } 
  
和 
  
    int main(int argc, char* argv[]) { /* ... */ } 
  
一个规范的实现可能提供许多版本的 main(),但它们都必须返回 int类型。main()返回
的 int 值,是程序返回一个值给调用它的系统的方式。在那些不具备这种方式的系统中,
返回值被忽略了,但这并不使“void main()”在C++或C 中成为合法的。即使你的编译
器接受了“void main()”,也要避免使用它,否则你将冒着被C 和C++程序员视为无知
的风险。 
  
在 C++中,main()并不需要包含显式的return语句。在这种情况下,返回值是0,表示
执行成功。例如: 
  
    #include<iostream> 
  
    int main() 
    { 
        std::cout << "This program returns the integer value 0\n"; 
    } 
  
注意,无论是ISO C++还是C99,都不允许在声明中漏掉类型。那就是说,与 C89和 ARM 
C++形成对照,当声明中缺少类型时,并不会保证是“int”。于是: 
  
    #include<iostream> 
  
    main() { /* ... */ } 
  
是错误的,因为缺少 main()的返回类型。 

posted on 2007-03-24 09:46 阿刚 阅读(170) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


导航

<2007年3月>
25262728123
45678910
11121314151617
18192021222324
25262728293031
1234567

统计

常用链接

留言簿(1)

随笔档案

文章档案

C++ BBS

C++ FAQ

C++ WEBSITE

搜索

最新随笔

最新评论

阅读排行榜

评论排行榜