Visual Studio附带的C++标准库实现和Windows API(包括Win32和MFC)都包含大量宏.
例如,他们将"TRUE"和"FALSE"定义为1和0.并将所有上下文中的bool替换为"BOOL",它是int的typedef.他们甚至没有使用三向逻辑.
还有"min"和"max"宏,可以很容易地用模板替换.
还有大量的定义只是简单地定义为"远"和"近"等.
Dav*_*nan 11
这些代码大部分都是以C代码开头的,并且可以追溯到20世纪80年代.如果今天从头开始编写,那么你可以期待代码看起来有点不同.
例如,您挑选出BOOL类型.在当天,当首次构思Windows API时,C中没有布尔类型.
你提到MIN和MAX宏并提出模板.好吧,你知道C中没有模板,那些宏甚至可能是C++模板之前的日期.
虽然MFC是一个C++库,但它位于Win32上,这是一个C API.因此,MFC的实现显然必须在其实现中使用该C API.
小智 8
在Ye Olden C天(MS-DOS),far并且near是指针关键字.这些库中的许多都是用C语言编写的:因此,他们不是从头开始重新发明整个标准库,而是使用已经有效的东西,并且已经运行得相当好.
此外,Windows本质上是一个C API,而不是C++,所以你可以期待代码中出现很多东西(如宏,奇怪的定义等).