在计算机程序中, 硬编码是指将可变变量用一个固定值来代替的方法, 使用这样方法,编译后,如果想更改词变量就变的非常困难。因此, 在大部分的程序语言中,可以将一个固定值定义为一个标记, 然后用这个特殊的标记来取代变量名称。 当标记名称发生改变时, 变量名不变。这样在程序进行编译时,所有的变量都不再是固定值 这样就更容易实现改变变量的目的。

所以在通常情况下, 应该避免使用硬编码方法:

例如:

java 例子:

硬编码: if(a==2): return false:

非硬编码: if(a==b):return false:

硬编码通常来讲: 就是把数值写成常数,而不是变量

C++ 例子

硬编码:

for(int I = 0; I<120; i++){

...

}

非硬编码:

#define MAX_USER_CNT 120

for (int i=0; i<MAX_USER_CNT; i++){

...

}

这里的120就属于数字式“硬编码”,这不仅让程序很难读,而且不易维护。如果要修改120,就的修改程序中所有与此有关的120。应将数字式“硬编码”声明成一个宏,这样程序不仅易读,而且还可以一改全改。

软编码比硬编码要复杂一些,对以后的考虑要周到一些。软编码是一种设计,而硬编码不过是一种具体的实现。软件开发不只是需要一个软件的实现,更需要软件能够很好的修改,方便得扩展,所以需要一些设计技巧在里面。

转载于:https://my.oschina.net/u/2272631/blog/1633869

硬编码与非硬编码(软编码)区别相关推荐

  1. 硬编码 and 软编码

    硬编码: 什么是"硬编码"? "硬",顾名思义,就是死板,一次性的意思.其定义也就是"将可变变量用一个固定数值表示",这种方式在编码的过程中 ...

  2. 1小时学会:最简单的iOS直播推流(八)h264/aac 软编码

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  3. 硬编码和软编码的区别

    Android 视频 硬编码和软编码的区别 软编码和硬编码如何区分 软编码:使用CPU进行编码 硬编码:使用非CPU进行编码,如显卡GPU.专用的DSP.FPGA.ASIC芯片等 软编码和硬编码比较 ...

  4. 简单谈谈硬编码和软编码

    工作中,经常被问硬编码.软编码怎么区分的问题,还是对这个问题整理一下吧. 一.软编码和硬编码如何区分 软编码:使用CPU进行编码 硬编码:使用非CPU进行编码,如显卡GPU.专用的DSP.FPGA.A ...

  5. 去抖音面试被问到硬编码与软编码区别,如何选取硬编与软编?

    原文链接:https://zhuanlan.zhihu.com/p/82130600 Android的视频相关的开发,大概一直是整个Android生态,以及Android API中,最为分裂以及兼容性 ...

  6. Android 音视频采集与软编码总结

    请尊重原创,转载请注明出处:http://blog.csdn.net/mabeijianxi/article/details/75807435(本文已在 "任玉刚" 微信公众号发布 ...

  7. FFmpeg简述,源码分析,录制/压缩/水印/剪切/旋转/滤镜/美颜/上传视频等(CPU软编码和解码)

    > ffmpeg源码分析 ffmpeg源码简析(一)结构总览- https://blog.csdn.net/Louis_815/article/details/79621056 FFmpeg的库 ...

  8. 【Android RTMP】RTMPDump 封装 RTMPPacket 数据包 ( 关键帧数据格式 | 非关键帧数据格式 | x264 编码后的数据处理 | 封装 H.264 视频数据帧 )

    文章目录 安卓直播推流专栏博客总结 一. x264 编码后的 H.264 数据帧 二. RTMP 协议中 关键帧 / 非关键帧 数据格式 说明 三. 判定 H.264 帧数据分隔符 四. 初始化 RT ...

  9. 哈夫曼编码的非树节点形式实现

    哈夫曼编码的非树节点形式实现 楔子 思考过程 于是想自己写一个headq 构建二叉树实在太久了,完全不让看文档,不敢不相信在有限的时间里可以调试成功,于是就想了使用非树的实现方式,就是把手动画的二叉树 ...

最新文章

  1. Python的最佳学习方式
  2. 精妙SQL语句【转】
  3. Linux C++ 实现线程池
  4. android fragment 教程,Android Fragment教程总结
  5. css 点击效果_使用CSS实现逼真的水波纹点击效果
  6. python求完全平方数_【Python】【demo实验6】【练习实例】【完全平方数相关】
  7. http地址后面加上问号?防止IE缓存
  8. MongoDB 安全权限访问控制
  9. 【数据清洗】异常点的理解与处理方法(1)
  10. 目标检测(二十)--Mask R-CNN
  11. AD9如何自定义板子外形,导圆角
  12. 批量给pdf电子书添加页码书签
  13. oracle cude报错,【案例】Oracle报错PLS-00597 PLS-00635原因和解决办法笔记
  14. 【C++】1070:人口增长(信息学奥赛)
  15. 基因表达谱热图的绘制
  16. 5星|戴蒙德《为什么有的国家富裕,有的国家贫穷》:为什么有的国家能发展出好制度...
  17. 图片怎么转jpg?教你两个超简单的图片转jpg格式的方法
  18. bat批处理开发-wifi联网系列(5):wifi稳定性分析之日期时间比较及奇特数字的坑
  19. IAR工程某些文件字体改不过来
  20. FF4J(特性框架)简介及入门

热门文章

  1. 云小课|想实现资源全自动备份?看完这篇秘籍,不再蕉绿~
  2. 5G to B核心网建设白皮书发布:2025年运营商toB市场高达6020亿美元
  3. 【华为云技术分享】ARMv8-A存储模型概述(1)
  4. 【华为云技术分享】如何度量前端项目研发效率与质量(上)
  5. 【华为云技术分享】HDC.Cloud | 为防止交通事故,95后学生运用“黑科技”这样做!
  6. 如果让你手写个栈和队列,你还会写吗?
  7. leetcode-深度优先搜索
  8. 红橙Darren视频笔记 旋转加载界面
  9. 【李宏毅机器学习】Tips for Deep Learning(p14) 学习笔记
  10. 机器学习十大经典算法之AdaBoost