iOS中#import和#include区别

一.#include指令

    1.include基本概念

    #include 是C语言的预处理指令之一,所谓预处理,就是在编译之前做的处理,预处理指令一般以 # 开头

    #include 指令后面会跟着一个文件名,预处理器发现 #include 指令后,就会根据文件名去查找文件,并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源文件中的 #include 指令,就像你把被包含文件中的全部内容拷贝到这个 #include 指令所在的位置一样。所以第一行指令的作用是将stdio.h文件里面的所有内容拷贝到第一行中。

    如果被包含的文件拓展名为.h,我们称之为"头文件"(Header File),头文件可以用来声明函数,要想使用这些函数,就必须先用 #include 指令包含函数所在的头文件

    #include 指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c、.hpp、.cpp等,甚至.txt、.abc等等都可以

    2.文件包含的格式

        当包含我们自己写的文件就是使用 #include "" 当包含系统􏰀供头文件的时候,就是用#include <>

        示例:

        #include <stdio.h>

        #include "one.h"

        注意:include 语句之后不需要加";"(因为#include它使一个预处理指令,不是一个语句)

    3.#import""与#import<>有什么区别:

        二者的区别在于:当被include的文件路径不是绝对路径的时候,有不同的搜索顺序。

        对于使用双引号""来include文件,搜索的时候按以下顺序:

        先在这条include指令的父文件所在文件夹内搜索,所谓的父文件,就是这条include指令所在的文件

        如果上一步找不到,则在父文件的父文件所在文件夹内搜索;

        如果上一步找不到,则在编译器设置的include路径内搜索;

        如果上一步找不到,则在系统的include环境变量内搜索

        对于使用尖括号<>来include文件,搜索的时候按以下顺序:

         在编译器设置的include路径内搜索;

         如果上一步找不到,则在系统的include环境变量内搜索


二.#import和#include区别

    #import与#include的类似,都是把其后面的文件拷贝到该指令所在的地方

    #import可以自动防止重复导入

    #import <> 用于包含系统文件

    #import""用于包含本项目中的文件

    #import, 告诉编译器找到并处理名为Foundation.h文件,这是一个系统文件,#import表示将该文件的信息导入到程序中

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,729评论 19 139
  • #include #include 是预处理指令,在编译之前的预处理期执行。它的作用是将引入文件中的内容拷贝到当前...
    寒咯阅读 8,959评论 0 10
  • 在前几天的一篇文章中总结部分提到了学习过程中基础的重要性。当然,并不是不支持大家学习新的框架,这篇文章就分享一下r...
    LucasHC阅读 13,424评论 19 28
  • 不是一个世界的,我又何时强求过?
    皆为序幕阅读 728评论 0 0
  • 德鲁神情凝重,欲言又止,贾克斯看着夜魅,眼睛瞪的像灯泡,啧啧称赞道:“这就是传说中的那只夜魅吗?” 夜魅夺冠的...
    地球的火星人阅读 3,240评论 0 1