title: Moving from C++ to C
body: <p>After a few years coding in C++, I was recently offered a job coding in C, in the embedded field.</p>
  
  <p>Putting aside the question of whether it's right or wrong to dismiss C++ in the embedded field, there are some features/idioms in C++ I would miss a lot. Just to name a few:</p>
  
  <ul>
  <li>Generic, type-safe data structures (using templates).</li>
  <li>RAII. Especially in functions with multiple return points, e.g. not having to remember to release the mutex on each return point.</li>
  <li>Destructors in general. I.e. you write a d'tor once for MyClass, then if a MyClass instance is a member of MyOtherClass, MyOtherClass doesn't have to explicitly deinitialize the MyClass instance - its d'tor is called automatically.</li>
  <li>Namespaces.</li>
  </ul>
  
  <p>What are your experiences moving from C++ to C?<br>
  What C substitutes did you find for your favorite C++ features/idioms? Did you discover any C features you wish C++ had?</p>