I use GLib/GObject in C, and I have come in some situations where I would want something like static constructors that exist i.e. in C# and Java.
A static constructor would only be run once, upon first creation of an object. What is a nice feature about static constructors in C# or Java is they are thread safe. Even if multiple threads create objects of that class at the same time, only a single thread would execute the static constructor, and other threads (regular, non-static) constructor would block until that thread has finished.
This make static constructors a perfect place for thread-safe static field initialization (which are just global variables in C/Gobject).
If you can't think of a case where such a feature would be needed, ckeckout this question that would be easily solvable with static constructors: How to cleanly instantiate a global mutex that is shared by threads in one of the threads itself