Makefile
当我通过例如添加宏-DMacro
而不是#define MACRO
在顶级头文件中添加宏时,我有一段第三方代码的工作方式不同(正如他们的文档所暗示的那样,它包含在所有文件中)。
如果以不同的方式定义它是否有任何差异,我用谷歌搜索,但除了-D MACRO 和 #define MACRO 的优先级之外,我想不出太多。
我想知道在开始调试和确定问题之前是否遗漏了有关制作文档/C 标准的任何内容。
感谢您的任何回答。
Makefile
当我通过例如添加宏-DMacro
而不是#define MACRO
在顶级头文件中添加宏时,我有一段第三方代码的工作方式不同(正如他们的文档所暗示的那样,它包含在所有文件中)。
如果以不同的方式定义它是否有任何差异,我用谷歌搜索,但除了-D MACRO 和 #define MACRO 的优先级之外,我想不出太多。
我想知道在开始调试和确定问题之前是否遗漏了有关制作文档/C 标准的任何内容。
感谢您的任何回答。
通常,它是完全相同的,但make
ISO 标准都没有对此有任何说法。这取决于编译器本身,有些甚至可能没有选项-D
。
To ,它只是运行带有任何选项make
的命令(例如)。gcc
ISO 没有指定关于如何运行编译器的任何内容,只是编译器(以及它创建的东西)的行为方式。
因为gcc
,可以在此处找到预处理器选项,因此它看起来与#define
.