because VC++ isn't C99 compliant