我对.hrl
文件的用途有点困惑。据我了解,.hrl
文件可以包含任何有效的 Erlang 代码,并且使用该-include
指令实际上会将.hrl
文件中的代码插入到包含它的任何模块中。
那么,什么样的代码适合放在这些.hrl
文件中呢?Erlang 的编程规则对记录有以下规定:
如果要在多个模块中使用记录,则应将其定义放在模块中包含的头文件(后缀为 .hrl)中。
结果,我养成了在代码中这样做的习惯。但是,我也喜欢将记录的实例化和比较函数以及类型定义等内容放在我的标题中(因为这是我在 C 中会做的事情)。这是不好的形式吗?是否应该从.erl
文件中导出类型,即使它们在多个模块中使用?似乎没有关于可用 Erlang 标头的最佳实践的文档。