众所周知,在C中不存在函数重载,不过LLVM提供了额外的扩展,实现了C函数的重载。要是用这个特性也十分简单,只需要在声明函数时加上__attribute__((overloadable))即可。
不过这个特性(据我所知)只在LLVM里提供。如果你的程序需要在其他没有LLVM编译器的平台下编译的话,请直接简单粗暴的换个函数名。
众所周知,在C中不存在函数重载,不过LLVM提供了额外的扩展,实现了C函数的重载。要是用这个特性也十分简单,只需要在声明函数时加上__attribute__((overloadable))即可。
不过这个特性(据我所知)只在LLVM里提供。如果你的程序需要在其他没有LLVM编译器的平台下编译的话,请直接简单粗暴的换个函数名。
那么上次提到了怎么编写IR代码,这次是如何给不同平台编译的笔记。
LLVM,对于很多OS X/iOS开发者来说,即使没有真正接触过,但想必也是有所耳闻。
LLVM,从名字上看就让人想到JVM (Java Virtual Machine),实际上也差不多,LLVM即Low Level Virtual Machine。那么既然是Virtual Machine,它也拥有自己的IR(中间表示)。
你可以在LLVM的官网上下载它的源码或者预编译版本。
那么就先从Hello World!开始吧