如何根据稍后定义的其他宏更改行为

  • 本文关键字:其他 何根 定义 macros m4
  • 更新时间 :
  • 英文 :


假设我有一个包含宏定义的文件tools.m4

define([YEAR_2_DIGITS], substr(YEAR, [2], [2]))

我想在另一个文件中使用query.sql:

changequote(`[', `]')
include(./tools.m4)
define([YEAR], [2017])
YEAR_2_DIGITS

但很明显它会回来:

$ m4 query.sql

AR

而不是CCD_ 3。

有没有一种变通方法可以让这个结构发挥作用?

我终于做到了。必须引用第一个定义的正文:

define([YEAR_2_DIGITS], [substr(YEAR, [2], [2])])

相关内容

  • 没有找到相关文章

最新更新