既然C中不允许直接重载函数,那么如何对这些函数进行重载呢?
void MotorDriver_Create(float speedAddress,float frequencyAddress, float db_input);
void MotorDriver_Create(float speedAddress, float frequencyAddress, float minDB, float maxDB);发布于 2019-01-28 22:04:38
无法实现类似于C++中可用的函数重载,因为与C++不同的是,函数签名不会以允许重载的方式损坏。您可以做的是使用_Generic关键字将宏映射到最适合参数类型的函数调用中。例如:
#include <math.h>
#include <float.h>
#define sqrt(X) _Generic((X), \
long double: sqrtl, \
default: sqrt, \
float: sqrtf \
)(X)https://stackoverflow.com/questions/54410894
复制相似问题