gpt4 book ai didi

c++ - 有没有办法为函数创建预处理器宏?

转载 作者:太空狗 更新时间:2023-10-29 23:46:39 25 4
gpt4 key购买 nike

是否可以根据函数结果创建 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 似乎没有正确定义。

有没有更好的方法来实现这一点?这可能吗?如果可能的话,我希望能够在头文件中获取此屏幕高度信息,因为这是大量遗留代码的一部分。

最佳答案

没有。宏在编译时被完全评估,至少在概念上由预处理器在实际代码被编译之前进行评估,并且 #if 等中的表达式必须是预处理器表达式。在程序运行之前无法知道屏幕的高度。

关于c++ - 有没有办法为函数创建预处理器宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9843248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com