偷懒是人类进步的阶梯,请问大佬们 C 如何运行时生成函数指针
有两个函数的参数 A,B 我想在调用 func(A, B)时候, 自动调用到 func_a1_b2(); 或者 func_a2_b2();
之前拿 switch case 做,写了半天发现太蠢了… 求大佬们指教。
有两个函数的参数 A,B 我想在调用 func(A, B)时候, 自动调用到 func_a1_b2(); 或者 func_a2_b2();
之前拿 switch case 做,写了半天发现太蠢了… 求大佬们指教。
盲建议个跳转表吧
C 里面都没有常规能实现的方法
不确定是不是你需要的这种
“`
func(A, B)
{
func_a1_b2();
}
“`
通过数组和函数指针的映射“初始化”好了之后可以一行代码调用不同函数;不用写一堆判断。
或许是你想实现的。
不过,简单的话,如果你的伪代码是这样的:
func(A,B)(C) =>
if A==1 and B==1 then
func_a1_b1(C)
else if A==2 and B==2 then
func_a2_b2(C)
end
那可以用 hashmap 来实现
函数指针不需要运行时生成,静态生成,运行时保存进 hashmap 就行
“运行时获得函数地址” 只有这种办法
其它的都只是编译期把地址存到固定地方而已
或者可以用宏来自动给新加的函数增加额外注册逻辑
http 服务的路由也是这个啊,识别 uri,然后调用对应的方法去处理请求。 方向都差不多,只是实现细节不一样