【发布时间】:2022-01-04 05:09:08
【问题描述】:
我正在审查开源 FANN 库。据我研究,为该项目做出贡献的开发人员在 C 编程方面经验丰富。但我想知道为什么他们在doublefann.h 文件中执行以下操作:
#undef DOUBLEFANN
#define DOUBLEFANN
使用#undef 删除标识符然后使用#define 重新定义它的目的是什么?
【问题讨论】:
-
要么是错误,要么是为了确保 DOUBLEFANN 没有值
-
如果不先删除,如果宏已经定义,则会报错,因为不允许重新定义宏。
-
允许并忽略重新定义具有相同定义的宏,但
标签: c preprocessor