C中两次使用相同标记的宏定义是什么意思?

时间:2016-05-04 17:09:09

标签: c ruby

当我偶然发现以下内容时,我正在阅读Ruby source code

#define RSTRING_EMBED_LEN_MAX RSTRING_EMBED_LEN_MAX

context

据我所知RSTRING_EMBED_LEN_MAX之前没有定义。 (我递归地抓了Ruby源代码。)

该行究竟做了什么?

1 个答案:

答案 0 :(得分:4)

此定义将扩展为文字标记tail -f /var/log/some.log | grep --line-buffered foo | grep bar ,正如您所期望的那样。

通过查看源代码,您会看到该宏用于定义具有相同名称的RSTRING_EMBED_LEN_MAX值,设置为enum

matt链接的提交解释了他们将所有宏转换为枚举,以改进调试。并且出于兼容性原因留下了宏。