相当于#pragma poison 的警告

Warning equivalent of #pragma poison

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

标识符中毒是可能的,因此当前或将来的任何使用都会导致错误:

#pragma GCC poison crash

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

你可以使用 #warning

用法如下:

#warning This is a custom message

现在 _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