【问题标题】:Difference between static const and const on a variable [duplicate]变量上的静态常量和常量之间的区别[重复]
【发布时间】:2015-03-05 14:01:28
【问题描述】:

两者之间有什么区别:

#import <UIKit/UIKit.h>
const static NSString * name;
@interface AppDelegate : UIResponder <UIApplicationDelegate>


@end

和:

#import <UIKit/UIKit.h>
const  NSString * name;
@interface AppDelegate : UIResponder <UIApplicationDelegate>

@end

【问题讨论】:

  • 我认为不是重复的。我不问一般情况。我专门问一个与声明为静态的全局变量的具体情况有关的问题。
  • 即使在标题中,问题也完全相同,除了开头有“What is the”而您的问题末尾有“on a variable”。他们在什么方面不是同一个问题?
  • 是的,你是对的,我可以删除问题吗?
  • 没有意义,你最好让它关闭,然后有答案的人仍然得到代表

标签: objective-c static constants


【解决方案1】:

static 表示变量的作用域仅限于此编译单元。没有它,您将无法在两个不同的实现文件(重复符号)中拥有两个名为 NSString * name 的变量。

【讨论】:

  • 这个答案切中要害,它回答了示例代码中范围的问题:文件范围。
  • 我在 AppDelegate.m 和 ViewController.m 中使用了 kPrefFcmClientId 而没有使用静态。我收到以下错误。重复符号_kPrefFcmClientId。
猜你喜欢
  • 2015-08-11
  • 2021-04-20
  • 2012-10-11
  • 2021-08-27
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 2012-10-22
相关资源
最近更新 更多