为什么在#undef 指令之后使用#define?
Why is #define used after an #undef directive?
我正在查看开源 FANN library. As far as I have examined, the developers contributing to the project are quite experienced in C programming. But I wonder why they do the following in doublefann.h 文件:
#undef DOUBLEFANN
#define DOUBLEFANN
使用 #undef
删除标识符然后使用 #define
重新定义它的目的是什么?
我不认为有什么秘密;只是该代码的作者想要覆盖 DOUBLEFANN
的任何现有预处理器值(例如,由某些头文件中较早的行设置,或者可能由 -DDOUBLEFANN=something
参数提供编译器的命令行)并将其替换为他自己定义的 DOUBLEFANN
作为具有空值的已定义预处理器宏。
至于为什么作者认为有必要这样做,我不知道。
我正在查看开源 FANN library. As far as I have examined, the developers contributing to the project are quite experienced in C programming. But I wonder why they do the following in doublefann.h 文件:
#undef DOUBLEFANN
#define DOUBLEFANN
使用 #undef
删除标识符然后使用 #define
重新定义它的目的是什么?
我不认为有什么秘密;只是该代码的作者想要覆盖 DOUBLEFANN
的任何现有预处理器值(例如,由某些头文件中较早的行设置,或者可能由 -DDOUBLEFANN=something
参数提供编译器的命令行)并将其替换为他自己定义的 DOUBLEFANN
作为具有空值的已定义预处理器宏。
至于为什么作者认为有必要这样做,我不知道。