博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS extern
阅读量:5143 次
发布时间:2019-06-13

本文共 715 字,大约阅读时间需要 2 分钟。

前言

将编程语言按照程序的应用分两种,和。

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 编译

转载于:https://www.cnblogs.com/R0SS/p/5467491.html

你可能感兴趣的文章
adb的配置
查看>>
MATLAB基础入门笔记
查看>>
Lucene:索引文件结构
查看>>
LeetCode:累加数【306】
查看>>
Thinkphp学习回顾(一)之基本结构目录
查看>>
Hadoop副本数配置
查看>>
数据库中字段类型对应C#中的数据类型
查看>>
根据Dockerfile创建hello docker镜像
查看>>
ControlTemplate in WPF —— Button
查看>>
cesharp 完美支持flash
查看>>
中国古乐
查看>>
jQuery的select相关操作
查看>>
同一个UILabel使用不同的大小和颜色
查看>>
github项目上传管理
查看>>
洛谷 P1101-题解
查看>>
MD5加密
查看>>
【nodejs笔记1】配置webstorm + node.js +express + mongodb开发博客的环境
查看>>
进程、线程、应用程序之间的关系
查看>>
Shiro入门 - 通过自定义Realm连数数据库进行授权
查看>>
C语言复习笔记-17种小算法-解决实际问题
查看>>