首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C中函数重载的替代方案?

C中函数重载的替代方案?
EN

Stack Overflow用户
提问于 2019-01-28 21:59:02
回答 1查看 360关注 0票数 0

既然C中不允许直接重载函数,那么如何对这些函数进行重载呢?

代码语言:javascript
复制
void MotorDriver_Create(float speedAddress,float frequencyAddress, float db_input);
void MotorDriver_Create(float speedAddress, float frequencyAddress, float minDB, float maxDB);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-28 22:04:38

无法实现类似于C++中可用的函数重载,因为与C++不同的是,函数签名不会以允许重载的方式损坏。您可以做的是使用_Generic关键字将宏映射到最适合参数类型的函数调用中。例如:

代码语言:javascript
复制
#include <math.h>
#include <float.h>
#define sqrt(X) _Generic((X), \
            long double: sqrtl, \
            default: sqrt, \
            float: sqrtf \
)(X)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54410894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档