\newcommand{\foo}{foo} 和 \newcommand{\foo}[0]{foo} 之间有什么区别?

\newcommand{\foo}{foo} 和 \newcommand{\foo}[0]{foo} 之间有什么区别?

我有一位合著者,他定义了许多宏,例如\newcommand{\foo}[0]{foo},明确给出了参数的数量,即使它是零,而我以前一直使用和看到\newcommand{\foo}{foo}没有参数的宏。

这两个版本的行为上是否存在任何可能的差异,或者除了可读性之外还有什么理由选择其中一个版本?

答案1

没有区别,实际上[0]是可选参数的默认值,因此在第一次扫描可选参数之后,它们遵循相同的代码路径。

相关内容