gpt4 book ai didi

c++ - 像这样使用宏合法吗?

转载 作者:太空狗 更新时间:2023-10-29 23:51:33 24 4
gpt4 key购买 nike

我有一个跨平台项目,我发现宏可能是克服一些平台不一致的最简单方法,但是由于我不是计算机科学背景,所以我不确定我们是否可以这样使用宏:

#ifndef _WIN32
#define someWindowsFunction(x, y) someLinuxFunction(y, x, &x)
#endif

最佳答案

是的,它是合法的,但它是否有效取决于 someWindowsFunction() 的调用细节(x 必须是左值)和当然,所涉及功能的行为。

有很多细节需要用宏正确完成,因为它们是简单的文本替换。您应该养成的一件事是始终在宏参数周​​围加上括号:

#define someWindowsFunction(x, y) someLinuxFunction((y), (x), &(x))

偶尔会有您不想要 parent 的时候,但这种情况并不常见,除非您知道有理由不这样做,否则您应该这样做。

关于c++ - 像这样使用宏合法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20037088/

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