title: What is a formal parameter?
body: <p>When compiling in C++ I often end up with error messages dealing with "formal parameters", such as</p>
  
  <pre><code>error C2719: 'b': formal parameter with __declspec(align('16')) won't be aligned
  </code></pre>
  
  <p>I do understand the error, and the fact that <code>b</code> is a parameter of a function I am defining.</p>
  
  <p>However, what does it mean that a parameter is <em>formal</em>? Can there be <em>informal</em> parameters as well? </p>
  
  <p>I do notice that the term "formal parameter" appears in other languages as well, so I presume it is a more generic term not necessarily specific to C-family of languages? Are informal parameters supported by some subset of languages?</p>
  
  <hr>
  
  <p>Upon seeing the answers, one final question: Where those names <em>formal parameter</em> and <em>actual parameter</em> origin from? Does it origin from the C standard, or is it an effect of calling it as such in some abstract language calculus?</p>