<分区>
既然C中不允许直接重载函数,那么这些函数怎么办呢?
void MotorDriver_Create(float speedAddress,float frequencyAddress, float db_input);
void MotorDriver_Create(float speedAddress, float frequencyAddress, float minDB, float maxDB);
标签 c
<分区>
既然C中不允许直接重载函数,那么这些函数怎么办呢?
void MotorDriver_Create(float speedAddress,float frequencyAddress, float db_input);
void MotorDriver_Create(float speedAddress, float frequencyAddress, float minDB, float maxDB);
最佳答案
无法实现类似于 C++ 中可用的函数重载,因为与 C++ 不同,函数签名不会以允许重载的方式被破坏。您可以做的是使用 _Generic
关键字将宏映射到最适合参数类型的函数调用。例如:
#include <math.h>
#include <float.h>
#define sqrt(X) _Generic((X), \
long double: sqrtl, \
default: sqrt, \
float: sqrtf \
)(X)
关于c - 替代 C 中的函数重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54410894/