title: How can this C code have lambda
body: <p>This code:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main()
  {
      void (^a)(void) = ^ void () { printf("test"); } ;
      a();
  }
  </code></pre>
  
  <p>Compile without warning with clang -Weverything -pedantic -std=c89 (version clang-800.0.42.1) and print <code>test</code>.</p>
  
  <p>I could not find any information about standard C having lambda, also gcc has it's own syntax for lambda and it would be strange for them do this if a standard solution existed.</p>