gpt4 book ai didi

可配置的自定义代码

转载 作者:行者123 更新时间:2023-11-30 16:44:39 27 4
gpt4 key购买 nike

我们的客户提供的源代码中有部分代码将根据工具类型执行。下面给出了示例代码部分。该功能具有公共(public)部分和工具特定(硬件平台)部分。代码用C语言编写并在VxWorks中运行。添加或删除新刀具类型需要修改代码。客户希望以最少的代码更改和测试工作来添加或删除新的工具类型

int vsp_recv(char *const recv_text)
{
int rc = 0;
const int type = get_tool_type();
// Common Code

if (MODEL_CR == type)
{
rc = beamoff(recv_text);
}
else
{
rc = vsp_set(recv_text);
}

return(rc);
}

将代码分成下面给出的两个方法,将它们保存在单独的源文件中并定义单独的 make 文件来生成工具特定的二进制文件,这是正确的技术吗?有没有更好的方法来做到这一点?

工具类型MODEL_CR代码

int vsp_recv_tool_speccific(char *const recv_text)
{
return beamoff(recv_text);
}

工具类型MODEL_CV代码

int vsp_recv_tool_speccific(char *const recv_text)
{
return vsp_set(recv_text);
}

重构方法

int vsp_recv(char *const recv_text)
{
int rc = 0;
const int type = get_tool_type();
// Common Code

rc = vsp_recv_tool_speccific(recv_text);
}

最佳答案

为每个工具定义一个共享库,并定义一个配置文件来定义每个工具调用哪些函数。在启动时加载共享库,并提供信号捕获器,以便在配置文件更改时重新加载。

关于可配置的自定义代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44415299/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com