iOS--clang

clang 读作 克朗

因为最近在看block,老看到有人用clang编译出来一堆乱七八糟的说是c++的代码,所以就好奇这是啥玩意儿

这东西在开发过程中应该用不到,我决定简单了解一下就行

苹果系统之前用的编译器是GCC,但是做GCC的那帮人不愿意帮苹果针对oc进行优化,毕竟那帮人是搞开源的,而苹果又老搞封闭,不买帐也正常

这时候克里斯搞出来一个llvm,然后苹果就把克里斯包养了,然后就为了oc进行了优化,结果就是出来了clang

一个比较好的clang介绍:

Clang ( 发音为 /klæŋ/) 是 LLVM 的一个编译器前端,它目前支持 C, C++, Objective-C 以及 Objective-C++ 等编程语言。Clang 对源程序进行词法分析和语义分析,并将分析结果转换为 Abstract Syntax Tree ( 抽象语法树 ) ,最后使用 LLVM 作为后端代码的生成器。

我的理解就是,clang先对代码进行预编译,然后再交给llvm生成二进制语言

所以oc的代码经过clang编译之后是勉强能看懂的,而且可以从中看到一些内部的实现原理

https://www.ibm.com/developerworks/cn/opensource/os-cn-clang/

这篇文章写的挺好的,可惜我看到他更新到2016.9月就不更新了,可能自己创业去了吧

https://www.ibm.com/developerworks/cn/opensource/os-cn-clang/

这篇文章是ibm的,关于clang的介绍写的很好

猜你喜欢

转载自www.cnblogs.com/chebaodaren/p/9259325.html