【发布时间】:2015-03-01 14:20:48
【问题描述】:
这是我找到的示例:
#define kNumberOfViews (37)
#define kViewsWide (5)
#define kViewMargin (2.0)
为什么不能这样?
#define kNumberOfViews 37
#define kViewsWide 5
#define kViewMargin 2.0
前面的k 是什么意思?有什么指南吗?
【问题讨论】:
-
k只是表示该值是常量/文字的约定。 “简单”值通常不需要()(我相信有人会提出例外),但如果您有诸如1<<3之类的表达式,则强烈建议您使用,否则表达式可能会上升反对首先关联并产生“不可预测的结果”的事物。 -
我同意使用首字母
k是一种约定,但是当常量引用key时我通常会看到它(这就是我相信k的来源)。常规常量的约定是将它们写成大写?!我知道这些都是“公正”的约定,但是这种区别给了它更多的上下文,我个人喜欢它。 @HotLicks -
这也意味着以
k开头的常量是不同的,大写常量不一定是这种情况。 -
(1) 你不应该使用“k ...”作为预处理宏,不要那样做。 (2) 对此类宏使用 ALLCAPS。 (3) 你需要大括号的原因是微不足道的,以避免 Rory 解释的“扩张困境”。
-
@JoeBlow - 最后一次统计,常量和文字有 3.14159268 x 10**34 种不同的命名约定。说使用
k是错误的而 ALLCAPS 是正确的,是武断地选择其中一种约定而不是其他约定。
标签: ios objective-c c-preprocessor