ios – 使用ifndef和||进行条件编译不会遇到第二种情况

ios – 使用ifndef和||进行条件编译不会遇到第二种情况,第1张

概述我正在尝试在设置两个定义中的一个或两个时禁用自动崩溃日志报告:DEBUG用于我们的调试版本,INTERNATIONAL用于国际版本.但是,当我尝试在#ifndef情况下执行此 *** 作时,我会在#ifndef指令结束时收到警告Extra标记,并且运行DEBUG定义将触发Crittercism. #ifndef defined(INTERNATIONAL) || defined(DEBUG) // 我正在尝试在设置两个定义中的一个或两个时禁用自动崩溃日志报告:DEBUG用于我们的调试版本,INTERNATIONAL用于国际版本.但是,当我尝试在#ifndef情况下执行此 *** 作时,我会在#ifndef指令结束时收到警告Extra标记,并且运行DEBUG定义将触发Crittercism.
#ifndef defined(INTERNATIONAL) || defined(DEBUG)    // WE NEED TO REGISTER WITH THE CRITTERCISM APP ID ON THE CRITTERCISM WEB PORTAL    [Crittercism enableWithAppID:@"hahayoudIDntthinkIDleavetherealonedIDyou"];#else    DDLogInfo(@"Crash log reporting is unavailable in the international build");    // Since Crittercism is Disabled for international builds,go ahead and    // registers our custom exception handler. It's not as good sadly    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);    DDLogInfo(@"Registered exception handler");#endif

这个真值表显示了我的期望:

INTL defined | DEBUG defined | Crittercism Enabled     F       |      F        |    T     F       |      T        |    F     T       |      F        |    F     T       |      T        |    F

这之前它只是#ifndef INTERNATIONAL.我也试过没有定义的(blah)和括号围绕整个语句(分别是相同的警告和错误).

如何从编译器中获得我想要的行为?

解决方法 你要:
#if !defined(INTERNATIONAL) && !defined(DEBUG)    // neither defined - setup Crittercism#else    // one or both defined#endif

或者你可以这样做:

#if defined(INTERNATIONAL) || defined(DEBUG)    // one or both defined#else    // neither defined - setup Crittercism#endif
总结

以上是内存溢出为你收集整理的ios – 使用ifndef和||进行条件编译不会遇到第二种情况全部内容,希望文章能够帮你解决ios – 使用ifndef和||进行条件编译不会遇到第二种情况所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1101933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存