我遇到过这样的 some example code:
#ifdef WIN32
...
#elif WIN64
...
#endif
在
#ifdef
块中,使用 #elif
表示 #elif defined
实际上合法吗? 最佳答案
不,不应该。这并不是说某些晦涩的 C 编译器不会接受它,但它不是 C 标准的一部分。
通常,对于这样的事情,您将使用 #elifdef FOO
(我从未在生产代码中实际看到过)或 #elif defined(FOO)
(如您所提到的)。
这段代码似乎以一种奇怪的方式工作;而是首先检查 WIN32
是否已定义,然后检查 WIN64
是否非零。
关于c-preprocessor - #ifdef WIN32 #elif WIN64 #endif,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25451376/