我使用 crash 函数测试Crashlytics集成,但是我显然永远不想在应用程序中发布该代码。

可能会毒化标识符,以便当前或将来的任何使用都会导致错误:

#pragma GCC poison crash

当使用标识符时,是否存在等效的#pragma指令发出警告?我希望能够构建代码库,同时保留需要注意的可见指示符。

最佳答案

现在可以使用_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预处理程序不会在自己的扩展内部扩展 token 。

如果将warning更改为error,则会收到错误消息。您可以通过使用更多的宏轻松地安排更改所有这些宏,或者可以只使用-Werror

关于ios - 警告等效于#pragma毒药,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33679699/

10-09 13:12