[C/C++] 如果在成熟的库中报编译错误

遇到一个古怪的问题,在我的一个程序中一旦#include <fstream>就报文件fstream有语法错误,什么丢失分号之类的。

后来发现程序里有一行#define close(s) shutdown(s, SD_BOTH),原来这把fstream里的close改了。

这是一个不好的宏定义,极易导致问题,但程序较大,因此也只是把这个宏定义移到#include <fstream>的后面,算是暂时解决了问题。

如果在成熟的库中报编译错误,应该检查一下前面代码的宏定义。

原文地址:https://www.cnblogs.com/nicebear/p/2135098.html