2019-12-30 19:26发布
void testInt(int a){ printf("testInt a = %d " , a); } void testFloat(float a){ printf("testFloat a = %f " , a); } void run(){ void* funp; funp = testInt; (*(u32(*)())funp)(3); }
takashiki 发表于 2017-3-5 18:32 表示无法理解你的意图,无法猜测。 如果你的串口发送一个“testFloat(5)",因为没有小数点,您的意思就是 ...
最多设置5个标签!
首先感谢您的回复
你提到的应用场景是在源程序里面这样使用是可以的。
可是我想要实现的是这样:
我有N个函数,这些函数都有8个参数。
每个参数都可能是 int 或者float 。理论上一共有2^8 =256个类型的函数(因为参数类型不同)
我通过串口发送8个数据,用逗号隔开。每个数据可能是int或者float。按照常规的做法我需要判断每个数据是哪一种然后决定调用哪个函数,这样的话就要用N多的if 或者用256个 switch case。
一周热门 更多>