硬编码是将数据直接嵌入到程序或其他可执行对象的源代码中的软件开发实践,与从外部获取数据或在运行时生成数据不同。 硬编码数据通常只能通过编辑源代码和重新编译可执行文件来修改,尽管可以使用调试器或十六进制编辑器在内存或磁盘上进行更改。 硬编码的数据通常表示不变的信息,例如物理常量,版本号和静态文本元素。 另一方面,软编码数据对用户输入,HTTP服务器响应或配置文件等任意信息进行编码,并在运行时确定。
硬编码要求程序的源代码在输入数据或所需格式发生变化时进行更改,以便最终用户可以通过程序外的某种方式更改细节。
硬编码通常是必需的,但也可以被认为是反模式。程序员可能没有针对最终用户制定的动态用户界面解决方案,但仍然必须提供该功能或发布该程序。这通常是暂时的,但从短期来看,确实解决了交付代码的压力。稍后,进行软编码以允许用户传递参数,该参数为最终用户提供修改结果或结果的方式。
术语“硬编码”最初被用作硬连线电路的类比,并且意在表达软件设计和实现中使用它所产生的不灵活性。在诸如MUD之类的运行时可扩展协作开发环境的上下文中,硬编码还指开发负责低级任务和执行脚本的系统的核心引擎,而不是开发高级脚本的软编码。系统在运行时解释。在这种情况下,这个术语不是贬义的,而是指一般的发展,而不是专门嵌入输出数据。
在计算机程序中,硬编码是指将可变变量用一个固定值来代替的方法。用这种方法编译后,如果以后需要更改此变量就非常困难了。通常情况下,都应该避免使用硬编码方法。
int a=2,b=2;
硬编码:if(a==2) return false;
不是硬编码 if(a==b) return true;