次のようなコードがあります
ApplicationSetting.h
FOUNDATION_EXPORT BOOL *const TEST_MODE;
ApplicationSetting.m
#ifdef DEBUG 
BOOL *const TEST_MODE = YES; 
 #else 
BOOL *const TEST_MODE = NO; 
 #endif
上記の .m ファイルのコードでは、この警告が表示されます
Incompatible integer to pointer conversion initializing 'BOOL *const' 
(aka 'signed char *const') with an expression of type 'signed char'; 
でも、こうなるように変えると
#ifdef DEBUG 
BOOL *const TEST_MODE = NO; 
 #else 
BOOL *const TEST_MODE = YES; 
 #endif
警告なしで正常に動作します。
これがどのように起こるか考えていますか?