相当于#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
我使用 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