将 __LINE__ 包裹在单引号中
Wrap __LINE__ in to single quotes
如何在 M4 中包装 LINE 和 FILE 宏以显示“4”或“4”。我希望它准备好输出到控制台。我为此使用 C++。
不是 100% 确定这是否是您想要的,但这使得 __file__
以引号输出文件名(在我的 mac os 上):
define(`_m4__file__',defn(`__file__'))
pushdef(`__file__',`"_m4__file__"')
define(`_m4__line__',defn(`__line__'))
pushdef(`__line__',`"_m4__line__"')
define(`echo',`$*')
echo(__file__,__line__)
echo(__file__,__line__)
输出:
"m4.t","8"
"m4.t","9"
对于单引号使用更多的转义:
define(`_m4__file__',defn(`__file__'))
pushdef(`__file__',`''`_m4__file__'`'')
define(`_m4__line__',defn(`__line__'))
pushdef(`__line__',`''`_m4__line__'`'')
define(`echo',`$*')
echo(__file__,__line__)
echo(__file__,__line__)
输出:
'm4.t','8'
'm4.t','9'
如何在 M4 中包装 LINE 和 FILE 宏以显示“4”或“4”。我希望它准备好输出到控制台。我为此使用 C++。
不是 100% 确定这是否是您想要的,但这使得 __file__
以引号输出文件名(在我的 mac os 上):
define(`_m4__file__',defn(`__file__'))
pushdef(`__file__',`"_m4__file__"')
define(`_m4__line__',defn(`__line__'))
pushdef(`__line__',`"_m4__line__"')
define(`echo',`$*')
echo(__file__,__line__)
echo(__file__,__line__)
输出:
"m4.t","8"
"m4.t","9"
对于单引号使用更多的转义:
define(`_m4__file__',defn(`__file__'))
pushdef(`__file__',`''`_m4__file__'`'')
define(`_m4__line__',defn(`__line__'))
pushdef(`__line__',`''`_m4__line__'`'')
define(`echo',`$*')
echo(__file__,__line__)
echo(__file__,__line__)
输出:
'm4.t','8'
'm4.t','9'