iOS extern
2016-05-06 23:39
330 查看
前言
将编程语言按照程序的应用分两种,Complier Language和Interpreted Language。Objective-C和C++都是编译语言,编译语言在执行之前,必须通过编译器生成机器码,然后在CPU上直接执行,执行效率高。
Objective-C采用Clang前段,LLVM(Low level vritual machine)作为编译器后段,步骤:
Clang->
LLVM Optimizer->
LLVM Code Generator
Clang: 语法分析,语义分析,生成中间代码(intermediate representation)。在这个过程中进行类型检查,如果发现错误或者警告会标注哪一行。
LVVM(Optimizer,Generator): BitCode生成,链接期优化/针对不同框架,生成不同机器码。
iOS程序中多个源文件,每个源文件在编译后期会对应一个.obj文件,这些目标文件之间就可能有关联,然后链接在一起生成可执行文件。
1.extern定义变量(e.g. NSString *)###
声明一个已经定义过的变量,多个源文件可以共同使用同一个变量(static相反)。
.h: extern NSString * const kEXTERNTAGSTRING; .m: NSString * const kEXTERNTAGSTRING = @"externTagString";
2.extern定义外部函数
外部函数:当前文件定义的函数允许其他文件访问,不可以有重名的外部函数;内部函数:当前文件定义的函数只能允许内部使用,可以重名;
参考
1.iOS编译过程相关文章推荐
- IOS异步获取数据并刷新界面dispatch_async的使用方法
- iOS开发TextField根据键盘自适应位置
- iOS中Notification的官方文档解读
- ios 3D引擎 SceneKit 开发(4) --关于旋转的几点问题(1)
- iOS 应用程序的启动过程
- 学习iOS
- 学习iOS【3】数组、词典和集合
- IOS开发中使用CNContact\CNMutableContact 对通讯录增删改查
- iOS之FMDB的基本使用
- iOS开发之原生二维码生成
- iOS之数据加密
- iOS数据解析之JSON解析
- 深拷贝、浅拷贝
- iOS之数据解析之XML解析
- 自定义相册
- github如何上传iOS源代码(最精炼版)
- iOS 开发查看应用的沙盒文件
- IOS自动释放原理及详解
- iOS获取各种文件目录路径的方法
- iOS 沙盒目录结构介绍