今天赶上了一个不大不小的问题,可是却为此折腾了一天,也算是积累了经验和教训。平时编代码的时候老是绕开问题,只要最后能实现功能就算完成了,实际上每个bug都是进一步理解C/C++的好机会,如今的问题比较简单,就更应该好好去琢磨,以避免往后出现大问题的时候不知道从何处下手。好了,废话很少说了,直接进入正题吧。linux
恰好最近这段时间我本身的事情大部分都解决了,因此能抽空看看以前项目组的同窗发给个人代码。个人习惯就是拿过代码来先编译一下,跑跑看看目前是啥现象,以便调试的时候发现问题的所在。然而这一次连编译都没经过,我以为很奇怪,她不可能把没经过编译的代码交给我吧。经过对error进行定位,我发如今“modulation.cpp”中有这样的一句话web
beta = max(betamin, min(ISR*(y0 - y1) + y0, 1));
显示的是max和min函数未定义。windows
我给她发QQ,她说在她的平台是能够编译经过的。她的平台是VS2012,而个人平台是VS2010。真的是平台的问题么?我谷歌了一下,发现你们广泛说的解决方案都是加上下面的头文件svg
#include
using namespace std;
我随手试了一下,发现不行,仍是下面有红线。找了半天,终于找到了包含max和min宏定义的头文件“stdlib.h”。我打开了这个文件,相关段落以下函数
/* Minimum and maximum macros */
#define __max(a,b) (((a) > (b)) ? (a) : (b))
#define __min(a,b