> If you decided to require C99, I would think you would want to use int64_t > and its relatives for portability.
I actually had "long long" in mind, because int64_t would require fluidsynth's header to include stdint.h, and whenever possible I would like to avoid polluting our header with any C system header (for the sake of portability to C++). Also note that int64_t is an optional type and may only be provided if the implementation supports it. (The latter doesn't really make sense in practice, because long long is an intrinsic type guaranteed to be at least 64 bits wide. And because long long must be available, int64_t will also be available.) Based on Reinhold's thought, the idea would be to use something like #if defined(_MSVC_VER < VisualStudio2015) typedef __int64 fluid_long_long_t; // even on 32bit windows #else typedef long long fluid_long_long_t; #endif in our public header. Which basically means: Fluidsynth's source code stays C89. The public header will be compatible with C99 (or C++11) UNLESS it's being compiled with an old VS in which case we provide a fallback. This should provide enough portability while still retaining ABI compatibility between and MSVC and MinGW compiled fluidsynth. Should it really be that simple or am I missing smth.? Tom _______________________________________________ fluid-dev mailing list fluid-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/fluid-dev