跳到主要内容

#import跟 #include 有什么区别,@class呢,#import<> 跟 #import””有什么区别?

参考答案:

#import#include@class 是用于 C、C++ 和 Objective-C 编程语言中的预处理器指令,用于包含或引用其他文件。每种指令都有其特定的用途和上下文。

  1. #include 与 #import

    • #include:这是 C 和 C++ 中的一个预处理指令,用于包含指定的头文件。如果多次包含同一个头文件,会导致重复定义的问题。
    • #import:这是 Objective-C 中的一个预处理指令,它是为了解决 #include 在 Objective-C 中可能导致的重复定义问题而引入的。#import 保证了同一个文件只会被包含一次,即使它在多个地方被引用。
  2. @class

    • @class:这是 Objective-C 中的一个指令,用于声明一个类。当你只需要告诉编译器某个类的存在,而不需要包含它的全部定义时,可以使用 @class。这通常用于减少编译依赖和加快编译速度。当你想使用某个类的指针或引用,但不需要知道它的具体实现时,可以使用 @class
  3. #import <> 与 #import ""

    • #import <>:这种方式通常用于包含系统库或框架的头文件。编译器会在标准库路径中查找这些文件。
    • #import "":这种方式通常用于包含项目内的头文件。编译器首先会在当前文件所在的目录及其子目录中查找,如果找不到,再去标准库路径中查找。

总结一下:

  • #include#import 都是用于包含文件的预处理指令,但 #import 在 Objective-C 中避免了重复包含的问题。
  • @class 用于声明一个类,但不需要包含它的全部定义。
  • #import <>#import "" 的区别在于它们查找头文件的路径不同。

在使用这些指令时,应根据项目的具体需求和上下文选择合适的指令。