1

Makefile当我通过例如添加宏-DMacro而不是#define MACRO在顶级头文件中添加宏时,我有一段第三方代码的工作方式不同(正如他们的文档所暗示的那样,它包含在所有文件中)。

如果以不同的方式定义它是否有任何差异,我用谷歌搜索,但除了-D MACRO 和 #define MACRO 的优先级之外,我想不出太多。

我想知道在开始调试和确定问题之前是否遗漏了有关制作文档/C 标准的任何内容。

感谢您的任何回答。

4

1 回答 1

2

通常,它是完全相同的,但makeISO 标准都没有对此有任何说法。这取决于编译器本身,有些甚至可能没有选项-D

To ,它只是运行带有任何选项make的命令(例如)。gccISO 没有指定关于如何运行编译器的任何内容,只是编译器(以及它创建的东西)的行为方式。

因为gcc,可以在此处找到预处理器选项,因此看起来与#define.

于 2013-05-03T10:46:30.717 回答