2011-02-17 30 views
0

以前从未遇到过的奇怪之处。我写了这个功能我校的一个项目:函数参数是“#define”?

void j_glOrtho(int left, int right, int bottom, int top, float near, float far) 

出于某种原因,微软的Visual C++说,nearfar#define而不是float。因此,当我尝试将它们用作float时,出现编译器错误。任何人都知道发生了什么事?

+1

当这种情况发生时,我多次撞击我的键盘。 – Marlon 2011-02-17 03:14:44

+0

@Marlon:这让我担心 - 小心键盘不会中断。 – Mehrdad 2011-02-17 03:17:06

回答

3

我相信这是DOS和16位事物的一些传统兼容性。我不知道这是否可行,但试试吧:

#ifdef near 
#undef near 
#endif 
#ifdef far 
#undef far 
#endif