在编译器中定义宏来确定它们是什么编译器、版本是什么是很常见的……可移植的 C++ 代码可以使用它们来确定它是否可以使用特定功能。
是什么__GNUC__意思?
它表明我是一个 GNU 编译器,你可以使用 GNU 扩展。[1]
是什么__attribute__((unused))?
附加到变量的此属性意味着该变量可能未被使用。GCC 不会为此变量生成未使用的变量警告。[2]
__GNUC__和 和有什么不一样_MSC_VER?
它们是两个不相关的宏。第一个说我是 GNU 编译器,第二个说 MS 编译器的版本号。但是,MS 编译器不应该支持 GNU 扩展。
我怎样才能#ifdef检查操作系统是否正在使用 GNU 和 MS Visual Studio 编译我的 python 代码?
#if (defined(__GNU__) && defined(_MSC_VER))
// ...
#endif