title: Naming convention for constructors and destructors in C
body: <p>Suppose I have a <code>struct list</code>, and I want to provide a "constructor" and a "destructor" function. How should I name them, respectively?</p>
  
  <pre><code>void list__init(struct list * self);
  void list__construct(struct list * self);
  void list__create(struct list * self);
  ...
  
  void list__done(struct list * self);
  void list__destruct(struct list * self);
  void list__destroy(struct list * self);
  ...
  </code></pre>
  
  <p>Is there an established naming convention that is predominant in the real world?</p>