re-order header/function checks
prevent initialization errors on some systems without vsnprintf