Python 2.7 与 MinGW 的 Visual Microsoft Visual C++ 编译器

Visual Microsoft Visual C++ Compiler for Python 2.7 vs MinGW

我正在用 c 编写一些函数,我将通过 Cython 从 Python 调用这些函数。我正在使用 MinGW C++ 编译器在 Code:Block 中开发这些函数。但是在为 Python 构建它们时,我必须为 Python 2 使用 Visual Microsoft Visual C++ 编译器。然后我遇到了一个奇怪的问题。 在使用 Visual C++ 编译器进行编译时,我经过大量试验并失败后发现,所有变量都必须在每个块(if、for、函数)中首先被清除。为什么会这样。 c 的编译器之间有区别吗?

在 C(正确的 C 而不是 C++)中,变量必须在块的开头声明。

MSVC 主要遵循原始的 C89 规范。在以后的语言修订版中,此限制已取消。