objective-c - Objective-C 中 static const 和 #define 的区别

标签 objective-c static constants c-preprocessor

<分区>

Possible Duplicate:
“static const” vs “#define” in C

在 Objective-C 中,以下两行之间的区别是什么:

#define myInteger 5

static const NSInteger myInteger = 5;

假设它们在实现指令上方的 MyClass.m 中。

最佳答案

#define myInteger 5

是预处理器宏。在编译器启动之前,预处理器会将每次出现的 myInteger 替换为 5。它不是变量,它只是一种自动查找和替换机制。

static const NSInteger myInteger = 5;

这是一个常量的“真实”变量(声明后不能更改)。静态意味着它将成为对该 block 的多次调用的共享变量。

关于objective-c - Objective-C 中 static const 和 #define 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12990775/

相关文章:

c++ - 存储在 static const int (c++) 中的对数函数的错误返回值

c++ - 定义 const 变量的最佳方式

c - 在结构中将 const char 转换为 char 时出错?

objective-c - 如何使用滑动手势从单元格 View 返回到 TableView

ios - 如何在左侧设置 UISegmentedControl 文本

c - 在 C 中,如何在没有指针的情况下检索超出范围的静态值?

c - 如何在 C 中为文件扩展名定义 ".txt"常量?

ios - 如何使用 objective-c 格式化从 youtube api v3 reuqest 返回的持续时间?

ios - 将 JSON 中的 "sex = 0"转换为 BOOL

c# - 绑定(bind)到 WPF 静态类中的静态属性