zoukankan      html  css  js  c++  java
  • iOS extern

    前言

    将编程语言按照程序的应用分两种,Complier LanguageInterpreted 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 编译

  • 相关阅读:
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言II博客作业03
    C语言II博客作业02
    C语言II博客作业01
    C语言I学期总结
  • 原文地址:https://www.cnblogs.com/R0SS/p/5467491.html
Copyright © 2011-2022 走看看