我使用一种名为JS的嵌入式语言进行编码。
我希望能够以任何顺序调用三个函数。 (ABC,ACB,BAC,BCA,CBA,CAB。)
诀窍?该语言没有用户定义的函数。
它确实有一个条件和循环结构。
我想我有三个选择。
我讨厌#1。重复的代码是令人讨厌的。如何在不搞砸的情况下更改任何内容?
我猜#2还可以。至少我在源代码中没有重复的代码。但我的输出代码是我将要调试的,我想知道我是否想要与它分道扬..从好的方面来说,我可以在语言中添加一堆糖。
我认为我最好的选择是#3。
还有其他想法吗?没有转到。没有功能。没有现有的预处理器。
关于#3的有趣之处在于它本质上是臭名昭着的/切换噩梦。
答案 0 :(得分:3)
也许某种突变状态机,即:
int CODEWORD=0x123;
while (CODEWORD)
{
switch(CODEWORD&15)
{
case 1:
/// case 1
break;
case 2:
/// case 2
break;
case 3:
//// case 3
break;
}
CODEWORD=CODEWORD>>4;
}
干,没有预处理器,没有数组。 for / switch似乎有些不可避免。
答案 1 :(得分:3)
您可以使用C预处理器而不是编写自己的预处理器。这至少会让你试一试,看看它是否是一个可行的解决方案。
答案 2 :(得分:1)
技术上最好的解决方案(假设您可以访问代码或开发人员)是修改JS语言以执行您真正需要的操作。
如果做不到这一点,最佳解决方案取决于您未解释的问题的各个方面:
如果5. 和的答案足够“是”,那么您的选项#2就是正确答案。否则......像#1或#3这样丑陋的解决方案实际上可能是个更好的主意。
编辑:如果您没有源代码访问权限且开发团队无法满足您的需求,请考虑寻找开源替代方案。