gpt4 book ai didi

objective-c - 预处理器语句的顺序给了我警告?

转载 作者:行者123 更新时间:2023-12-03 16:28:59 26 4
gpt4 key购买 nike

我有一个代码如下

ApplicationSetting.h

FOUNDATION_EXPORT BOOL *const TEST_MODE;

ApplicationSetting.m

#ifdef 调试
BOOL *const TEST_MODE = YES;
#其他
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 调试
BOOL *const TEST_MODE = NO;
#其他
BOOL *const TEST_MODE = YES;
#endif

它工作得很好,没有任何警告。

你知道这是怎么发生的吗?

最佳答案

你确实想写一个值:

FOUNDATION_EXPORT const BOOL TEST_MODE;

BOOL 不是一个 objc 对象,它是一个signed char

就错误而言,编译器会提示,因为您正在将数值分配给指针值 - 其中编译器只接受 0 (又名 NULL) ,任何其他数字(YES1)都会产生错误/警告。

附注只需使用bool

关于objective-c - 预处理器语句的顺序给了我警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12778957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com