是否可以基于函数结果创建C++预处理器宏?有没有办法为函数创建一个预处理宏?
例如,我希望动态保存屏幕高度的预处理宏定义:
#define SCREEN_HEIGHT GetSystemMetrics(SM_CYVIRTUALSCREEN)
然后我想使用该结果基于屏幕高度设定值:
#if SCREEN_HEIGHT < 1200
#define TOP_COORD 200
#define BOTTOM_COORD 500
#define LEFT_COORD 0
#define RIGHT_COORD 1280
#else
#define TOP_COORD 1100
#define BOTTOM_COORD 1400
#define LEFT_COORD 0
#define RIGHT_COORD 1280
#endif
这不起作用,因为SCREEN_HEIGHT似乎没有得到正确定义。
有没有更好的方法来实现这个目标?这甚至有可能吗?如果可能,我希望能够在头文件中获得此屏幕高度信息,因为这是大量遗留代码的一部分。
非常好,谢谢。 – devurs 2012-03-23 17:00:13