我遇到过这样的 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/

10-11 11:55