【发布时间】:2015-11-12 19:29:48
【问题描述】:
我使用 crash 函数来测试 Crashlytics 集成,但我显然不想在应用中发布该代码。
可能会毒化标识符,因此当前或将来的任何使用都会导致错误:
#pragma GCC poison crash
是否有等效的#pragma 指令在使用标识符时发出警告?我希望能够在构建代码库的同时保留需要注意的可见指示符。
【问题讨论】:
标签: ios xcode preprocessor crashlytics
我使用 crash 函数来测试 Crashlytics 集成,但我显然不想在应用中发布该代码。
可能会毒化标识符,因此当前或将来的任何使用都会导致错误:
#pragma GCC poison crash
是否有等效的#pragma 指令在使用标识符时发出警告?我希望能够在构建代码库的同时保留需要注意的可见指示符。
【问题讨论】:
标签: ios xcode preprocessor crashlytics
这应该可以工作,现在_Pragma 可用。除了使用#pragma GCC poison,您可以只使用#define 标识符crash 以使用#pragma GCC warning 生成警告的方式:
#define DO_PRAGMA(x) _Pragma(#x)
#define WARN(x) DO_PRAGMA(GCC warning #x)
#define crash WARN("crash" used) crash
前两个宏只是减少了转义引号的工作。请注意,crash 会扩展为自身(以及 _Pragma),这是因为 C 预处理器不会在其自身的扩展中扩展标记。
如果您将 warning 更改为 error,则会收到错误消息。您可以通过使用更多宏轻松安排更改所有这些,或者您可以只使用-Werror
【讨论】:
你可以使用#warning
用法如下:
#warning This is a custom message
【讨论】:
poison 那样自动标记标识符的所有未来使用。