title: Function vs. Macro in CMake
body: <p><a href="http://www.cmake.org/cmake/help/v2.8.12/cmake.html" rel="nofollow noreferrer">The official document of CMake 2.8.12</a> says about <code>macro</code></p>
  <blockquote>
  <p>When it is invoked, the commands recorded in the macro are first
  modified by replacing formal parameters (${arg1}) with the arguments
  passed, and then invoked as normal commands.</p>
  </blockquote>
  <p>and about <code>function</code></p>
  <blockquote>
  <p>When it is invoked, the commands recorded in the function are first
  modified by replacing formal parameters (${arg1}) with the arguments
  passed, and then invoked as normal commands.</p>
  </blockquote>
  <p>Obviously, the two quotes are almost the same but it's confusing. Does parameter replacement behave the same in functions and macros?</p>