gpt4 book ai didi

c - _Generic 和具有多个参数的函数

转载 作者:行者123 更新时间:2023-12-04 04:58:44 25 4
gpt4 key购买 nike

我正在阅读这个 C11 的 _Generic维基百科上的例子:

#define cbrt(X) _Generic((X), long double: cbrtl, \
default: cbrt, \
float: cbrtf)(X)

如何将它用于只有一个参数的函数似乎很清楚,但是我看不到一种方法来使用该系统编写具有两个(或更多)通用参数的函数。怎么可能?

如果某些编译器支持此功能,我会尝试一些东西,但我也找不到,所以我无法找到关于如何做到这一点的任何想法。

最佳答案

显然,对此没有“通用”规则,这实际上取决于用例。但是一个典型的用例是使用标准促销来确定一个常见的“父类(super class)型”

#define pow(X, Y) _Generic((X)+(Y), long double: powl, \
default: pow, \
float: powf)((X), (Y))

XY调用此宏时类型不一致,窄的将自动提升为宽的。

关于c - _Generic 和具有多个参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16419459/

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