bpo-33720: Refactor marshalling/unmarshalling floats. (GH-8071)

diff --git a/Include/pyport.h b/Include/pyport.h
index c1f4c7f..f4b547a 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -525,8 +525,10 @@
  * Usage:
  *    int _Py_NO_INLINE x(void) { return 3; }
  */
-#if defined(__GNUC__) || defined(__clang__)
-#  define _Py_NO_INLINE __attribute__((noinline))
+#if defined(_MSC_VER)
+#  define _Py_NO_INLINE __declspec(noinline)
+#elif defined(__GNUC__) || defined(__clang__)
+#  define _Py_NO_INLINE __attribute__ ((noinline))
 #else
 #  define _Py_NO_INLINE
 #endif