当我偶然发现以下内容时,我正在阅读Ruby source code:
#define RSTRING_EMBED_LEN_MAX RSTRING_EMBED_LEN_MAX
据我所知RSTRING_EMBED_LEN_MAX
之前没有定义。 (我递归地抓了Ruby源代码。)
该行究竟做了什么?
答案 0 :(得分:4)
此定义将扩展为文字标记tail -f /var/log/some.log | grep --line-buffered foo | grep bar
,正如您所期望的那样。
通过查看源代码,您会看到该宏用于定义具有相同名称的RSTRING_EMBED_LEN_MAX
值,设置为enum
。
由matt链接的提交解释了他们将所有宏转换为枚举,以改进调试。并且出于兼容性原因留下了宏。