我对以下内容感到好奇.我在头文件中声明了一个简单的C数组,如下所示:
static int userCardsIndexes[INITIAL_CARDS_NUMBER] = {0, 1, 8, 9, 16, 17};
Run Code Online (Sandbox Code Playgroud)
它给了我一堆警告:
: 'userCardsIndexes' defined but not used
Run Code Online (Sandbox Code Playgroud)
尽管我将此文件包含在我的cpp文件中并使用此变量.我不明白的第二件事是当我添加这样的const说明符时:
static const int userCardsIndexes[INITIAL_CARDS_NUMBER] = {0, 1, 8, 9, 16, 17};
Run Code Online (Sandbox Code Playgroud)
警告消失了!任何人都可以给我一个解释为什么我得到这些警告以及为什么要const删除它们?
我正在使用Xcode 4.6,我有一个头文件,其中包含我在整个代码中使用的一些常量.我不想使用预处理器指令,因为我希望它们被正确键入等等.
例如,我在我的一个.h文件中有这个代码:
static NSString *kErrorCannotDivideByZero = @"Error: Cannot divide by zero";
Run Code Online (Sandbox Code Playgroud)
我在相应的.m文件中使用它:
[self showToast:kErrorCannotDivideByZero];
Run Code Online (Sandbox Code Playgroud)
我收到警告:
/path/to/my/headerFile.h:32:18: Unused variable 'kErrorCannotDivideByZero'
Run Code Online (Sandbox Code Playgroud)
我知道这只是一个警告,但我有大约50个这些警告堵塞了我的编译器输出.
为什么我收到此警告以及如何妥善解决?
我对简单地压制所有未使用的变量警告并不感兴趣,因为我确实希望得到合法的警告.