通常我使用第一个来定义const,但我不清楚以下区别.
static NSString* kFetcherCallbackThreadKey = @"_callbackThread";
static NSString* const kFetcherCallbackRunLoopModesKey = @"_runLoopModes";
NSString* const kFetcherRetryInvocationKey = @"_retryInvocation";
static const NSUInteger kMaxNumberOfNextLinksFollowed = 25;
Run Code Online (Sandbox Code Playgroud)
在 C 中,在static函数外部使用的关键字用于声明只能从声明它的文件中访问的符号。\xc2\xabprivate\xc2\xbb 全局变量的种类。
const 关键字表示 \xc2\xabconstant\xc2\xbb。读取,该值无法修改。\n注意这两个语句是不同的:
\n\nconst int * x;\nint * const x;\nRun Code Online (Sandbox Code Playgroud)\n\n第一个定义了一个指向常量整数的指针(其值无法修改,但可以指向其他值)。\n第二个定义了一个指向常量整数的指针(该指针值无法修改) ,但 int 的值可能是)。\n所以你可以完美地拥有:
\n\nconst int * const x;\nRun Code Online (Sandbox Code Playgroud)\n\n所以在你的情况下:
\n\nstatic NSString* kFetcherCallbackThreadKey = @"_callbackThread";\nRun Code Online (Sandbox Code Playgroud)\n\n指向 NSString 实例的指针,只能从声明它的文件中访问该实例。
\n\nstatic NSString* const kFetcherCallbackRunLoopModesKey = @"_runLoopModes";\nRun Code Online (Sandbox Code Playgroud)\n\n指向 NSString 实例的常量指针,只能从声明它的文件中访问该实例。
\n\nNSString* const kFetcherRetryInvocationKey = @"_retryInvocation";\nRun Code Online (Sandbox Code Playgroud)\n\n指向 NSString 实例的常量指针,可以从项目的其他文件访问该实例。
\n\nstatic const NSUInteger kMaxNumberOfNextLinksFollowed = 25;\nRun Code Online (Sandbox Code Playgroud)\n\n一个常量整数,只能从声明它的文件中访问。
\n| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |