程序的四种错误

程序四种错误需要区分开来: 编译错误, 链接错误, 运行错误, 逻辑错误



    编译错误, 就是语法错误, 比如句尾没有分号, 宏, 关键字重定义等等

    链接错误, 程序本身一般(注意是一般)没有什么问题. 比如引用的外部变量, 函数等等没有定义或者重复定义.
 比如申明了函数, 类, 类成员, 但是没有实现.都会导致链接错误.



    编译错误是由编译器报出, 链接错误有链接程序报出. 这两项工作完成了, 开发平台"报错"的任务完成了.剩下是你你的工作了.



    运行错误, 可执行文件生成了, 在运行的过程中报出来的"错". 可能是正常报错, 比如程序检测到运行所需要的数据没有准备好等等. 
报"错"之后可能程序可以继续运行, 可能导致异常.

    逻辑错误, 一般是语意错误, 也就是代码的缺陷, 一般都是写的代码不能准确的表达你想表达的意思
导致程序运行的结果和你期望的不一致. 比如 a = i << 2 +8, 你想让i左移2位后再加8, 但实际的结果是i左移了10位.



    前两种错误是静态错误, 没有生成可执行文件, 就表示至少发生了这两种错误里的一种. 这就是大家平时说的"编译器报错".

    后两种错误是动态错误, 只有程序运行起来了, 才会报出来的错. 如果有这两种错误, 需要大家用某种调试方法找出来加以排除.



    因此大家在交流程序开发的问题时, 要能准确说出是上面四种错误的哪种, 别人就可以有针对性的对问题进行讨论.

    而且编译错误和链接错误一般编译平台都会给出错误号, 依据错误号和错误行, 就能更方便找出错误所在了.

你可能感兴趣的:(异常,调试,程序开发)