gpt4 book ai didi

c++ - 使用预处理器定义函数调用的缺点是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:12:16 24 4
gpt4 key购买 nike

我想知道以这种方式使用预处理器的缺点是什么:

#define SOME_FUNCTION someFunction(someArgument)

基本上我觉得这是错误的(或者肯定不是最佳实践)- 但我不确定为什么......我的预处理器技能充其量只是生疏了。

最佳答案

问题是每次使用参数时都会重新计算参数:

#define MIN(A,B)   ((A) < (B))?(A):(B);

请注意,我必须将所有参数包装在 '(' ')' 中以确保表达式的计算正确。但是,如果我们这样做会发生什么?

int  s = MIN(++current,Max);

编写此代码时,我希望在调用函数之前电流会递增一次。但是因为它是一个宏,所以它在测试中递增一次,如果它仍然小于 Max,则递增第二次

关于c++ - 使用预处理器定义函数调用的缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2087563/

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