相关疑难解决方法(0)

为什么要使用MACRO + 0!= 0

在我目前的代码库中,我看到以下模式:

#if SOMETHING_SUPPORTED+0 != 0
...
#endif
Run Code Online (Sandbox Code Playgroud)

不幸的是,这是一个非常古老的代码库,没有人知道它是如何以及为何开始的 我认为它是从C开始的,它慢慢地转换为C类,现在它倾向于C++

我看不到使用先前构造而不是"经典"的任何明显优势,但也许我错过了一些东西:

#if SOMETHING_SUPPORTED
...
#endif
Run Code Online (Sandbox Code Playgroud)

你知道为什么会使用#if MACRO+0 != 0而不是#if MACRO

c c++

72
推荐指数
4
解决办法
4390
查看次数

#if中使用的未定义常量的值是多少?

为了评估#if条件,我的预处理器似乎假设未定义的常量为0 .

可以依赖它,还是未定义的常量给出未定义的行为?

c++ c-preprocessor

61
推荐指数
2
解决办法
7521
查看次数

标签 统计

c++ ×2

c ×1

c-preprocessor ×1