1

我的意思是这样的情况:

#define __STDC_FORMAT_MACROS 1
#include <inttypes.h>

这个确切的例子可能很少用,但这只是一个例子,这种方法被广泛使用,尤其是在项目内部。为系统或编译器类型和版本定义的宏采用类似的方式,在编译器命令行中定义的宏也是如此。

import我的问题是,当您已经有一个使用普通名称的模块时,是否存在一些可供即将使用声明的开发人员使用的机制,如下所示:

#define __STDC_FORMAT_MACROS 1
#export __STDC_FORMAT_MACROS
import std.inttypes;

或者,甚至更好 - 指定导出到模块的参数专门为其(不会传播到其他模块)。是否有任何机制可以实现它?

4

1 回答 1

3

大约 80% 的模块是一个模块是一个固定的对象,它的定义完全不受模块本身之外的任何东西的影响。如果您可以“参数化”它们,那将使它们变得毫无价值,因为每次导入模块时,都必须重新编译它。这正是存在要防止的问题模块。

模块采用的唯一参数是编译器的命令行参数,就像任何其他翻译单元一样。

于 2019-11-14T14:20:02.567 回答