ifndef,define&直接分配常数

时间:2012-12-26 20:57:59

标签: ios objective-c constants c-preprocessor ifndef

我正在考虑以下方法之间的区别,同时定义常量:

方法一: 创建一个头文件来定义所有常量,使用include guard:

#ifndef c1
#define c1 @"a123456789"
#endif

然后将常量赋值给函数:

Identity.number = c1;

方法2: 只需简单地定义常量

即可
#define c1 @"a123456789"

然后将常量赋值给函数:

Identity.number = c1;

方法3: 不要定义常量,只需将值赋给函数:

Identity.number = @"a123456789";

上述任何优点和缺点?

2 个答案:

答案 0 :(得分:1)

当您确保常量仅定义一次时,第一种方法很重要。第三种方法不允许IDE帮助您进行自动完成,这在常量的值更复杂时非常重要。

答案 1 :(得分:0)

方法1和2 对于更大的项目来说要好得多,因为您可以轻松地更改常量位置的值。 方法1 对于包含大量文件的大型项目可能特别有用,但对于较小的项目来说并不是必需的。

方法3 中,您必须搜索每行代码以找到要分配给的值(如果您为其分配更多位置)。因此,我认为使用它是不好的。