C 如何比较编译器

C 如何比较编译器,c,compiler-construction,C,Compiler Construction,您使用什么指针来比较编译器 我听说gcc是最好的C编译器,这是真的吗?若然,原因为何 我的意思是,一般来说,您可以声明哪个编译器更适合哪个体系结构 (例如,我听说igc更适合英特尔,但我不知道为什么) 就我个人而言,我打算使用AMD 64位,在Linux和Windows、GUI和非GUI应用程序中开发。我知道INTEL和MS编译器已经开始为指令生成代码,并开始做一些聪明的事情,如展开循环和支持编译器中的矢量化。不确定GCC是否能做到这一点。一般来说:首先,编译器质量最重要的方面是正确性。一个有b

您使用什么指针来比较编译器

我听说gcc是最好的C编译器,这是真的吗?若然,原因为何

我的意思是,一般来说,您可以声明哪个编译器更适合哪个体系结构

(例如,我听说igc更适合英特尔,但我不知道为什么)


就我个人而言,我打算使用AMD 64位,在Linux和Windows、GUI和非GUI应用程序中开发。

我知道INTEL和MS编译器已经开始为指令生成代码,并开始做一些聪明的事情,如展开循环和支持编译器中的矢量化。不确定GCC是否能做到这一点。

一般来说:首先,编译器质量最重要的方面是正确性。一个有bug或意外行为的编译器真的会毁了你的一天。 结果代码的质量,如速度、大小和内存使用,也在列表的顶部

编译速度是另一个方面,尤其是在编译大型项目时


我发现一件特别重要的事情是错误处理,当编译器遇到它不能(或不会)处理的东西时,你得到的消息的质量。

嗯,不知道你从哪里听说gcc是“最好的C编译器”。它是最普遍的,而且比20世纪90年代gcc出现时大多数商业UNIX供应商提供的本机C编译器要好得多

但“最好”的定义是什么

  • 编译代码的时间
  • 编译代码的大小
  • 编译代码的速度
  • 编译代码的内存使用情况
  • seg断层的缺陷和概率
  • 支持
  • 社区
  • 等等
不同的事情对不同的人很重要

这里有一个和另一个。我相信你也能找到一些与微软编译器的比较

一般来说,人们并不关心相关的大小或速度或编译器(甚至不必关心输出的大小或速度小于2倍),而是关心它是否有效(这在十年或二十年前是一个真正的问题),它是否支持相关标准,是否有您必须解决的任何异常/缺陷/功能。

您的意思是

  • 编译速度最好
  • 最好用最简单的代码
  • 最快的代码
您可以创建一个测试应用程序,可能带有一些讨厌的代码(需要智能优化器),并使用所有编译器对其进行测试


比较您的基准测试,并使用您最喜欢的基准测试。

我一直认为错误消息和警告会有所不同。有些编译器会使您不必要地难以理解他们想说什么。其他的则更加方便用户。如果您可以在没有编译器不断警告您自己创建的内容的情况下启用警告,这也很好。

正确性是必要条件

我也喜欢

  • 拥有运行速度非常快的编译器(如或)
  • 拥有一个能产生真正好代码的编译器(比如或)
如果它们是两个不同的编译器,那也没关系


我讨厌有一个编译器,当新版本出现时,它会使程序崩溃。(理查德·斯泰尔曼,打电话给你的办公室。)

gcc是一个可怕的编译器。它拥有最好的技术支持,也许是因为它的价格、用户数量和互联网(还有谷歌的帮助)。但就其生成的机器代码的质量而言,其输出是平均到低于平均水平的。

请指定更多信息,即操作系统、目标体系结构、您的需求(什么样的程序)、成本约束,等等。如果您要求,ONGC4会做什么。