c - 如何在 C 中实现通用宏?

标签 c types macros generic-programming

FUNC(param);

paramchar *时,派发给func_string

当它是int时,调度到func_int

我认为可能有一个解决方案,因为变量类型在编译时是已知的..

最佳答案

这将通过 C1X 成为可能但不在当前标准中。

它看起来像这样:

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

关于c - 如何在 C 中实现通用宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7256203/

相关文章:

haskell - 输入没有意义的签名

c# - 有人如何在 C# 中编写 "macro"?

java - 如何使 Swig 正确包装在 C 中修改为 Java Something-or-other 的 char* 缓冲区?

C 线程在访问非共享资源时给出垃圾输出

java - 为什么类型化 List<> 的元素在子类中使用时会强制转换为 Object

types - 如何比较 Rust 中拥有的向量和静态向量的内容?

#if 0 和#endif 之间的代码块必须有成对的双引号吗?

c - 内存分配的间隔

rust - 宏扩展忽略 token `let` 和任何后续

知道程序输出文件名的 c 宏