#define vs const和链接框架

时间:2011-11-04 23:46:46

标签: objective-c frameworks linker nsstring c-preprocessor

我有一个非常小的轻量级应用程序,它需要使用一些存储在更大框架中的常量。我不想复制这些常量并将它们硬编码到轻量级应用程序中,但我也不希望必须链接大型框架才能获得常量。

常量是在头文件中使用static NSString *const定义的。将static NSString *const替换为#define是否会阻止我与整个框架相关联?

老实说,我不完全确定链接是如何工作的,所以我可能会错误地考虑这个

1 个答案:

答案 0 :(得分:1)

是的,如果你#define常量,你只需要#import包含它们的.h文件。

你需要知道#defined常量是文字文本替换 - 它们没有"类型"等等,因为静态const值会。

但另一个选项(仅限整数常量)是在.h文件中定义C-style enums