# Which of these two equivalent macro definitions should be preferred?

Consider the following two macro definitions:

\def\setmacro#1{\def\macro{#1}}

\def\setmacro{\def\macro}

Although the two variants of \setmacro have a different \meaning they are equivalent in what they eventually do (if used correctly). In my opinion, the former definition is easier to read while the latter is more flexible and, possibly, more efficient. So which one should be preferred?

-
When such a decision is being made, it is worth thinking about using \let. It's not always possible to use \let in this case, but if it is, it might be the best compromise between efficiency and error checking (see Martin Scharrer's answer). –  Patrick Häcker Oct 7 '12 at 12:07