我们正在使用C++构建DLL。由于我们在DLL的大小中有400个大小变得越来越大,因此有没有其他方法使用替代交换机是否有任何其他方式来编写在C++中使用switch语句的代码
0
A
回答
9
您所切换的数据类型取决于。如果它是一个密集的int范围,则使用存储函数指针的查找表。在其他情况下,使用从切换值到功能指针的std::map
。
0
2
我会说切换不是问题。
你的分支之间有很多代码重复(我想你还有类似395的东西),所以你应该能够通过抽象出通用部分来缩小你的DLL;唯一的区别是您正在检索哪个字段以及您使用它执行的计算。如果您的代码与您发布的代码完全相似,那么绝大多数代码可以在分支之间共享。
如果你的编译器没有对字符串进行任何合并,所以你有几个查询模板的实例,这也没有帮助。
将所有条件,数据库查询和字符串连接因子分解为函数,并查看需要的地方。
无论如何,您应该这样做,因为它会使维护和进一步扩展变得更容易。
0
开关盒的大小和Dll的大小应该没有直接关系。除了编译器提供的defalut优化选项外,唯一可以控制大小的方法是减少通用代码并正确使用STL
相关问题
- 1. 是否有任何其他方式来编译使用R api的C代码?
- 2. 有没有写这个switch语句中的任何替代方法(C#3.0)
- 3. 是否有任何其他方式来适合bg使用html
- 4. 在私有方法中编写switch语句的测试用例
- 5. 如何在R中编写switch语句?
- 6. 在JavaScript中使用switch语句编写if..else语句
- 7. Java问题:是否有可能在另一个switch语句中有switch语句?
- 8. 是否有任何其他方式来设置使用Python的字典值?
- 9. 是否有任何8051汇编语言C代码转换器
- 10. 是否有另外一种方法来编写if语句?
- 11. Switch中的其他语句是语法错误?
- 12. 避免在switch语句中硬编码
- 13. 在Obj-C中使用Switch语句
- 14. 在C代码中的if&switch语句中的意外输出
- 15. 是否有任何其他方式获取Googlescript中的URL?
- 16. 是否有任何其他方式来验证VB.net中的文本框的值
- 17. 是否有其他方法来编码/组合这些? JS
- 18. 有没有更简单的方法在JavaScript中编写此代码(while循环和switch语句)?
- 19. 是否有任何其他方式来查找除automatarviewer以外的其他方式的元素
- 20. 的Java:是否有任何其他有效的方式来做到这一点
- 21. switch语句是否适用于工厂方法? c#
- 22. Python 2.7.10:是否有任何其他方式来检查是否输入是空的,而不是使用len()
- 23. 是否有任何其他编程谜语?
- 24. c switch语句
- 25. gradle.processResources中的代码块是否有其他任务被请求
- 26. 他们是否有任何方式来调用内部函数
- 27. 死代码消除在switch语句
- 28. Watir是否以Ironruby(或其他任何方式)使用IronNetwork?
- 29. 是否有更高效/优雅的方式来编写我的代码?
- 30. C++中的switch语句
雅恰恰400个案例 – Dotnet 2011-02-15 11:30:54
您还可以请提一下,您正在采取的操作类型以及您正在检查的值。 – 2011-02-15 11:31:09
取决于代码的功能。 – visitor 2011-02-15 11:31:18