龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

探索C++编译器构造

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
所谓 C++编译器 其实也不是什么太难的东西,他是一个与标准化C++高度兼容的编译环境。只有这样的编译器对C++开发人员来说才是最有意义的工具,尤其是对于程序设计语言的学习者。

所谓C++编译器其实也不是什么太难的东西,他是一个与标准化C++高度兼容的编译环境。只有这样的编译器对C++开发人员来说才是最有意义的工具,尤其是对于程序设计语言的学习者。

经常有人向我(Bjarne Stroustrup)询问,能否推荐一个C++编译器。但是,我不能做这样的推荐,因为这样非常容易卷入一场商业战争。同样,我也不知道每一种C++编译器,因为它们有太多的相似的地方。我使用六种C++编译器来完成基本需要,但是仅仅从表面上来看它们都是参差不齐的。

我建议人们使用和标准严格一致的编译器。如果你这样做,就能够避免编译器不和ISO标准近似的情况,以及不能使用标准库的情况。最近一些来自主要C++厂商发行的编译器都是这样做的。

如果你是一个新手,不知道如何查看编译器的构造,那么使用下面的代码:

  1. #include<iostream> 
  2.  #include<string> 
  3.  
  4.  using namespace std;  
  5.  
  6.  int main()  
  7.  {  
  8.   string s;  
  9.   cout << "Please enter your first name followed by a newlinen";  
  10.   cin >> s;  
  11.   cout << "Hello, " << s << 'n';  
  12.   return 0; // this return statement isn't necessary  
  13.  } 

如果编译器不能处理这段简单的程序,那么它就不能作为学习标准C++语言的候选编译器。这里有一篇很长的文章论证编译器的一致性,和boost.org的编译器状态文章。一致性是编译器质量的一部分(产生代码的质量。

错误消息,编译速度,工具集成,支持程度,向后兼容,以及其它重要的方面),但却是很重要的一部分。编译器厂商对语言的扩充和非标准特性的使用限制了程序的简捷性,并且可以防止你选择一个新的编译器厂商。

目前的编译器都嵌入到了软件开发工具和开发库的框架里边。这些框架、环境、库都非常有用,但是要记住一点是,对这些工具的使用将会使你局限在单一的卖主上,局限在重要的执行性能上。

当在网上寻找C++编译器时,你可以发现隐藏在几种产品名称后的信息。实际上,使用google.com,我非常幸运的发现了C++编译器的信息,这比起从厂商目录中寻找要好的多。这里,我选择了一个C++编译器的名称列表,不考虑它们的市场情况。

精彩图集

赞助商链接