__attribute__ macro is not defined in msvc and it is not essential to the implementation. All it does is tell the compiler that this function is similar to printf, and expects a printf-like format string So for MSVC we define __attribute__ as a macro that do nothing