clang 与 GCC 的区别

一、clang 介绍

1.1 概述

          Clang 是一个 C 语言、C++、Objective-C 语言的轻量级编译器。源代码发布于 BSD 协议下。Clang 将支持其普通 lambda 表达式、返回类型的简化处理以及更好的处理 constexpr 关键字。

        Clang 是一个由 Apple 主导编写,基于 LLVM 的 C/C++/Objective-C 编译器

        2013 年 4 月,Clang 已经全面支持 C++11 标准,并开始实现 C++1y 特性(也就是 C++14,这是 C++ 的下一个小更新版本)。Clang 将支持其普通 lambda 表达式、返回类型的简化处理以及更好的处理 constexpr 关键字。

        Clang 是一个 C++ 编写、基于 LLVM、发布于 LLVM BSD 许可证下的 C/C++/Objective-C/Objective-C++ 编译器。它与 GNU C语言规范几乎完全兼容(当然,也有部分不兼容的内容,包括编译命令选项也会有点差异),并在此基础上增加了额外的语法特性,比如 C 函数重载(通过__attribute__((overloadable))来修饰函数),其目标(之一)就是超越 GCC。

BSD :

BSD_百度百科

lambda 表达式:

ClangGCC都是流行的C/C++编译器。它们有一些区别,如下所示: 1. 性能:GCC是一个成熟的编译器,经过多年的发展和优化,因此在某些情况下可能会比Clang更快。然而,Clang在某些特定情况下也能提供相近或更好的性能。 2. 编译速度:Clang通常比GCC更快,尤其是在逐步编译(incremental compilation)方面。这意味着在修改代码后,只需重新编译更改的文件而不是整个项目时,Clang编译速度更快。 3. 错误信息和警告:Clang以其优秀的错误信息和警告而闻名。它提供详细、易于理解和准确的错误和警告信息,对于代码质量的提升和调试非常有帮助。 4. 标准支持:GCCClang都遵循C和C++标准,但是在某些版本中对标准支持的程度可能有所不同。因此,在选择编译器时,应该考虑所需的标准版本以及编译器对该版本的支持。 5. 平台支持:GCC具有广泛的平台支持,可以在多种操作系统和体系结构上使用。Clang也具有良好的跨平台支持,但在某些平台上可能会有一些限制。 6. 插件支持:GCC提供了丰富的插件系统,使得可以扩展和定制编译器的功能。Clang也支持插件,但在某些方面可能不如GCC成熟。 需要注意的是,GCCClang都是优秀的编译器,并且具有自己的优势和适用场景。选择使用哪个编译器取决于个人偏好、项目需求和特定应用程序的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值