gpt4 book ai didi

c - 类函数宏的合法用途是什么?

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

<分区>

在 C/C++ 中不乏不良或危险的类似函数的宏示例。

#define SQUARE(x) x * x
printf("%d", SQUARE(4)); //16
printf("%d", SQUARE(3+1)); //7
#undef SQUARE

#define SQUARE(x) (x) * (x)
printf("%d", 36/4); //9
printf("%d", SQUARE(6)/SQUARE(2)); //36
#undef SQUARE

#define SQUARE(x) ((x) * (x))
int x = 3;
++x;
printf("%d", SQUARE(x)); //16

int y = 3;
printf("%d", SQUARE(++y)); //?
#undef SQUARE

鉴于类函数宏的问题,有哪些好的/谨慎/推荐使用它们的例子?

有没有什么时候类似函数的宏比函数更可取?

我想一定有一些非常好的案例,否则预处理器制造商会简化他们的工作并将它们排除在外。

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